Det är en 16F18877, som har temperaturdioderna mot Vdd. Jag saknar erfarenhet av både temperaturindikator och den stökiga ADC i denna krets, så kan ha gjort vilket misstag som helst...
Får ett värde från ADC som fladdrar kring 926, det känns fel. Motsvarar ungefär 0.48V under Vdd och där skall vara 4 diodsträckor. Rutinen som visar siffrorna används även på annan plats och fungerar där.
Kan Ni som kan se något uppenbart fel? De femtioelva ADC-register som inte rörs skall enligt datablad ha värden enligt POR när modulen startas efter att ha varit avstängd. Efter listningens slut läses adresl/adresh och därefter ställs modulerna av igen.
Kod: Markera allt
        
        lod bs,#pmd0/128
        rmb pmd0,6              enable fvr (t-ind)
        rmb pmd2,5              enable adc
        lod bs,#fvrcon/128
        smb fvrcon,5            t-ind on
        smb fvrcon,4            t-ind high range
        nop
        nop
        lod bs,#adcon0/128
        lod a,#%_1000_0100      startup a/d, right shifted results
        lod adcon0,a
        lod a,#%000111          set a/d clock, intosc is 8MHz
        lod adclk,a
        lod a,#$3d              select t-ind
        lod adpch,a
        lod a,#-1
        lod adpre,a             max precharge time
        lod adacq,a             max sample time
.wait   nop                     a little wait
        nop
        dsz areg
        jmp .wait
        smb adcon0,0            begin conv
.adwait nop                     wait for it
        sbr adcon0,0
        jmp .adwait
 
				








