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