Je potrebné sa pozrieť na nastavenie bitov REFS1 a REFS0 v registry ADMUX procesora a zároveň ako máte privedené referenčné napätie na vstup Vref procesora. Tento krátky kód by vám mohol pomôcť,ale je v asm pre AVR. Používam ich pri čítaní napätí zo zdroja.
//definicie
//ADC prevodnik
//ADCSRA - register ADEN,ADSL,ADFR,ADIF,ADIE,ADPS2-0
.EQU SetADC = 0b10000111 //nastavenie ADCSRA registra CLK/128
.EQU UIn = 0b11100010 //napatie vstupne
//nastavenie v sekcii Init pri starte programu
.
.
.
//----------- ADC --------------
ldi A,SetADC //prednastavenie registra
out ADCSRA,A
.
.
.
ret
//rutina citacia hodnotu z ADC
ReadUin:
cbi ADCSRA,ADEN
ldi A,Uin //nastavim register ADMUX
out ADMUX,A
sbi ADCSRA,ADEN
nop
sbi ADCSRA,ADSC //odstartovanie AD prevodu
//pockam na skoncenie AD prevodu
R_Uin1:
sbic ADCSRA,ADSC
rjmp R_Uin1
in A,ADCH //tu je prevedena hodnota
ret
Příspěvky odeslané z IP adresy 78.99.175.–
vega33