ich progge in winavr-c.
Dann ist das wohl kein Problem das von mir geschriebene umzusetzen.

mach doch etwa so :
Code:
ADCSRA=(1<< ADEN) | (1<<ADFR) | (1<<ADIE) | (1<<ADSC) | (1<<ADPS0) | (1<<ADPS1) | (1<<ADPS2);
ADMUX = (1<<REFS0) | (1<<MUX0);
Der Interrupthandler
Code:
SIGNAL (SIG_ADC) {
int result;
result  = ADCL + (ADCH << 8);
if (result < 100){
zaehler++;
} else if (result > 200) {
zaehler--;
}
}
Dein Zähler muß Du nur volatile Deklarieren, damit er im Interrupt auch zugänglich ist.
Naja und sonstige headers nicht vergessen (signal.h interrupt.h)

Ich hoffe, daß es Dir weiterhilft

Gruß Sebastian