Bei mir (8MHz Mega32) scheint das zu funktionieren:

Code:
#include <avr/io.h>
#include <stdlib.h>
#include <inttypes.h>
#include <avr/interrupt.h>
#include <util/delay.h>

volatile unsigned char servopos0, p=0;

#define SERVO_0_PIN 7
#define SERVOPORT PORTC
#define DDRSERVO DDRC

#ifndef F_CPU
#define F_CPU 8000000UL
#endif

void servo_init(void)
{

TIMSK|=(1<<OCIE2); // Interrupt gestatten
TCCR2 |= (1<<WGM21) | (1<<CS20); // CTC-Mode, no prescaling (= wäre sicherer)
OCR2 = F_CPU/100000; // 100000kHz
DDRSERVO |= (1<<SERVO_0_PIN);
}

ISR(TIMER2_COMP_vect)
{
char cSREG;
cSREG = SREG;
static int scount;
if(scount>servopos0)SERVOPORT&=~(1<<SERVO_0_PIN);
else SERVOPORT|=(1<<SERVO_0_PIN);
if(scount<2000)scount++;
else {scount=0; if(p) p--;}
SREG = cSREG;
}

uint16_t readADC(uint8_t channel)
{
	uint16_t result;

   ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1); // ADC einschalten, prescal /64
   ADMUX = channel; // Kanal wählen
   //ADMUX |= (1<<REFS1) | (1<<REFS0); // + interne 2,56V-Referenz
   ADMUX |= (0<<REFS1) | (1<<REFS0); // + 5V-Referenz
   ADCSRA |= (1<<ADSC); // Konvertierung starten
   while(ADCSRA & (1<<ADSC)); // warten bis Wandlung abgeschlossen

	result= ADC; // Ergebnis zwischspeichern

   ADCSRA &= ~(1<<ADEN); // ADC ausschalten

   return(result); // Ergebnis abliefern
}

/*************** Ausgabe an Terminal *******************************/
#define BAUD_LOW		38400  //Low speed - 38.4 kBaud
#define UBRR_BAUD_LOW	((F_CPU/(16*BAUD_LOW))-1)

void writeChar(char ch)
{
    while (!(UCSRA & (1<<UDRE)));
    UDR = (uint8_t)ch;
}
void writeString(char *string)
{
	while(*string)
		writeChar(*string++);
}
void writeInteger(int16_t number, uint8_t base)
{
	char buffer[17];
	itoa(number, &buffer[0], base);
	writeString(&buffer[0]);
}

/***************************Hauptprogramm***************************/
int main (void)
{

	DDRD = 0xFF;
	//PORTA = 0b00001111;
	uint16_t result0 = 0;
	uint16_t result1 = 0;
	uint16_t result2 = 0;
	uint16_t result3 = 0;
	servo_init();

	// Setup für RP6 (8MHz Mega32)
	// UART:
	UBRRH = UBRR_BAUD_LOW >> 8;	// Setup UART: Baudrate is Low Speed
	UBRRL = (uint8_t) UBRR_BAUD_LOW;
	UCSRA = 0x00;
   UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
   UCSRB = (1 << TXEN) | (1 << RXEN) | (1 << RXCIE);

	sei();

	while (1)
	{
		servopos0 = 100;
		result0= readADC(0);
		result1= readADC(1);
		//result2= readADC(6);
		result3= readADC(7);

		writeString("ADC0:");
		writeInteger(result0, 10);
		writeString("  ADC1:");
		writeInteger(result1, 10);
		writeString("  ADC7:");
		writeInteger(result3, 10);
		writeChar('\n');
		p=10; while(p);
      }
}
Die Ausgabe:
Code:
[READY]
ADC0:765  ADC1:1023  ADC7:1023
ADC0:765  ADC1:1023  ADC7:1023
ADC0:765  ADC1:1023  ADC7:1023
ADC0:765  ADC1:1023  ADC7:1023
ADC0:765  ADC1:1023  ADC7:1023
ADC0:765  ADC1:1023  ADC7:1023
ADC0:765  ADC1:1023  ADC7:1023
ADC0:765  ADC1:1023  ADC7:1023
ADC0:765  ADC1:1023  ADC7:1023
ADC0:765  ADC1:1023  ADC7:1023
ADC0:765  ADC1:1023  ADC7:1023
ADC0:765  ADC1:947  ADC7:1023
ADC0:765  ADC1:838  ADC7:1023
ADC0:765  ADC1:727  ADC7:1023
ADC0:765  ADC1:616  ADC7:1023
ADC0:765  ADC1:518  ADC7:1023
ADC0:765  ADC1:443  ADC7:1023
ADC0:765  ADC1:388  ADC7:1023
ADC0:765  ADC1:345  ADC7:1023
ADC0:765  ADC1:340  ADC7:1023
ADC0:765  ADC1:323  ADC7:1023
ADC0:765  ADC1:313  ADC7:1023
ADC0:765  ADC1:292  ADC7:1023
ADC0:765  ADC1:279  ADC7:1023
ADC0:765  ADC1:279  ADC7:1023
ADC0:765  ADC1:276  ADC7:1023
ADC0:765  ADC1:279  ADC7:1023
ADC0:765  ADC1:373  ADC7:1023
ADC0:765  ADC1:551  ADC7:1023
ADC0:765  ADC1:722  ADC7:1023
ADC0:765  ADC1:874  ADC7:1023
ADC0:765  ADC1:1023  ADC7:1023
ADC0:765  ADC1:1023  ADC7:1023
ADC0:765  ADC1:1023  ADC7:1023
ADC0:765  ADC1:1023  ADC7:1023
ADC0:765  ADC1:1023  ADC7:1023
ADC0:765  ADC1:1023  ADC7:744
ADC0:765  ADC1:1023  ADC7:547
ADC0:765  ADC1:1023  ADC7:392
ADC0:765  ADC1:1023  ADC7:273
ADC0:765  ADC1:1023  ADC7:190
ADC0:765  ADC1:1023  ADC7:162
ADC0:766  ADC1:1023  ADC7:154
ADC0:766  ADC1:1023  ADC7:173
ADC0:765  ADC1:1023  ADC7:327
ADC0:765  ADC1:1023  ADC7:500
ADC0:765  ADC1:1023  ADC7:668
ADC0:765  ADC1:1023  ADC7:823
ADC0:766  ADC1:1023  ADC7:1023
ADC0:766  ADC1:1023  ADC7:1023
ADC0:765  ADC1:1023  ADC7:1023
ADC0:765  ADC1:1023  ADC7:1023
ADC0:765  ADC1:1023  ADC7:1023
ADC0:765  ADC1:1023  ADC7:1023
ADC0:657  ADC1:1023  ADC7:1023
ADC0:506  ADC1:1023  ADC7:1023
ADC0:386  ADC1:1023  ADC7:1023
ADC0:276  ADC1:1023  ADC7:1023
ADC0:124  ADC1:1023  ADC7:1023
ADC0:15  ADC1:1023  ADC7:1023
ADC0:0  ADC1:1023  ADC7:1023
ADC0:0  ADC1:1023  ADC7:1023
ADC0:0  ADC1:1023  ADC7:1023
ADC0:0  ADC1:1023  ADC7:1023
ADC0:0  ADC1:1023  ADC7:1023
ADC0:148  ADC1:1023  ADC7:1023
ADC0:299  ADC1:1023  ADC7:1023
ADC0:432  ADC1:1023  ADC7:1023
ADC0:555  ADC1:1023  ADC7:1023
ADC0:666  ADC1:1023  ADC7:1023
ADC0:759  ADC1:1023  ADC7:1023
ADC0:771  ADC1:1023  ADC7:1023
ADC0:771  ADC1:1023  ADC7:1023
ADC0:771  ADC1:1023  ADC7:1023
ADC0:771  ADC1:1023  ADC7:1023
ADC0:771  ADC1:1023  ADC7:1023
ADC0:770  ADC1:1023  ADC7:1023
ADC0:770  ADC1:1023  ADC7:1023
Gruß

mic