Problem z ATmega32 i ADC

Mar 26, 2008 1 Replies

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


SM napisał(a):

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

SM

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required