Hallo,
diese beiden Zeilen machen nicht das wie es gemeint war:
Code:
ADCSRA = (1<<ADIF); // delete ADIF, cause it could trigger ISR
ADCSRA &= (1<<ADEN); // deactivating ADC
die erste Zuweisung löscht alle anderen Bits,
sodass die 2. eigentlich nix mehr zu tun hat.
Dann würde ich nicht jedesmal den ganzen ADC deaktivieren, dann gehts beim 2. mal etwas schneller.
Wie schnell Taktet der AVR, hast Du den Prescaler richtig berechnet?
Wie ist der ADC extern beschaltet, also AVCC/VRef usw. bei interner Ref muss da aussen was mit Kondensator anders sein ?
Welchen Wert übergibts Du der Funktion bei pin ?
Welchen AVR hast Du ?
Lesezeichen