Problem z ATmega32 i ADC

Mam problem z uruchomieniem ADC w ATmega32.

Na początku wywołuję jeden raz:

InitADC: ldi R16, (1 << REFS0) + 3 out ADMUX, R16

ldi R16, (1 << ADEN) | (1 << ADPS2) | (1 << ADPS0) out ADCSRA, R16 sbi ADCSRA, ADSC ret

Potem w kółko:

ReadADC: sbic ADCSRA, ADSC ret sbis ADCSRA, ADIF ret sbi ADCSRA, ADIF

in R16, ADCL sts value, R16

sbi ADCSRA, ADSC ret

Efekt jest taki, że value przyjmuje jakąś tam wartość zależną od napięcia na nóżce tylko raz. Potem pozostaje bez zmian, przy czym procedura zapisu zmiennej value jest wykonywana (program przechodzi sbic i sbis).

Czy w tej atmedze siedzi jakiś haczyk?

Pozdrawiam, SM

Reply to
SM
Loading thread data ...

SM napisał(a):

Dzięki za ewentualną pomoc. Doczytałem - brak odczytu ADCH zamrażał ADCL.

SM

Reply to
SM

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.