Hallo

Welche Compiler-Version hast Du? (Die haben manchmal ziemlich blöde Fehler)

1) ADC_CLOCK_INTERNAL sollte man normalerweise nur verwenden, wenn man während des sleep-Modus sampelt. Sonst einen der abgeleiteten (_DIV_xx) Takte verwenden. Der taktet nämlich etwas zeitversetzt zum normalen CPU-Takt, d.h. man hat weniger schaltbedingtes Rauschen auf dem ADC (siehe Datenblatt)

2) NOMCLR - ich weiss jetzt nicht auswendig, ob diese fuse int. oder ext. reset bedeutet. Schau das nochmals nach.

3) init: da fehlt ein set_adc_channel(0);

4) ADC Resultat: Das Resultat ist, wie schon gesagt, 16bit oder 8bit, abhängig vom #device.
ABER: Um die 16Bit zu speichern braucht man ein long int (16Bit) und nicht nur ein int (8Bit)
Da müsste also long stehen, ausser Du willst nur 8Bit, dann reicht aber auch ein ADC=8.

5) Lass dem Ding in der Schleife doch etwas Zeit: Der ADC sollte zwischen zwei Messungen eine Pause haben, damit sich die Spannung im internen Sampling-Kondensator an die Eingangsspannung angleichen kann (Datenblatt) Ausserdem wirst Du sowieso keine 20kHz Samplingrate brauchen.

6) Haben die vorherigen Programme funktioniert? Blinklicht?

Gruess
Fritzli