Re: ADC w ATMEGA16 i ilo?? stanów

Powinno być ? KOD -------------- void adc_init(void) // Function to initialise the ADC feature { ADCSRA=0X00; ADMUX=0X40; ADCSRA=0X47; // prescaler (128) + ADSC ADCSRA|=0X80; // ENABLE }

------------------------

Reply to
Jan Górski
Loading thread data ...

Jan Górski pisze:

Nie wiem co masz w układzie - to Twój projekt

Taka uwaga - nie wiem skąd u programistów uC bierze się maniera do pisania w hex. Może od razu podawać adresy rejestrów zamiast ich definicji? np. ((*(volatile uint8_t *)((0x06) + 0x20))) |= 0x20; Jak piszesz ADMUX=0X40; to bez zajrzenia do dokumentacji kompletnie nie wiem o co chodzi. A zaglądanie do dokumentacji marnuje mój czas. Jak byś napisał ADMUX=_BV(REFS0); (jak twój kompilator nie ma to #define _BV(a) (1<<a)) to od razu byłoby wiadomo co ustawiasz.

Dla zasady wypadałoby tu poczekać na zakończenie tej pierwszej konwersji.

void setup_adc() { ADMUX = _BV(REFS0); ADCSRA = 0b111;// /128 ADCSRA |= _BV(ADEN) | _BV(ADSC); while( ADCSRA & _BV(ADSC) ) ; } nie jest czytelniejsze?

Zbędne, niezdefiniowane zachowanie, ale chyba nie powinno powodować błędów.

Dlaczego ustawiasz ADLAR?

Reply to
Michoo

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.