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

Jul 30, 2010 Last reply: 15 years ago 3 Replies

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 }



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


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< KOD --------------

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?

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required