Code:
ADCSRA=(1<<ADSC)| // start conversion
(1<<ADEN)| // enable converter
(1<<ADFR)| // free running (kontinuierliche wandlungen)
(1<<ADPS2)| // prescaler bit2
(1<<ADPS1)| // prescaler bit1 (siehe datenblatt, S.208, hier clk/64)
(1<<ADIE); // interrupt enable, nur notwendig, wenn du eine ISR hast
als referenzspannung der wandlung wird die spannung an Aref genommen, als eingang C0. deshalb muss man ADMUX hier nicht setzen.
(1<<ADIE) kann evtl. weg, dann liegt dennoch das ergebnis der wandlung in ADCH (high byte) und ADCL (low byte).
mit ADMUX=(1<<ADLAR); hast du das ergebnis left adjusted, also liegt in ADCH ein wert von 0-255 (bei Vmess=Vref). damit hast du ohne bitschubserei eine 8bit wandlung, wenn du ADCL einfach vernachlässigst.
lies das datenblatt. der AD-wandler teil ist nicht schwierig.
gruesse
Lesezeichen