Gast
#99956
Ich hab ein kleines Problem mit meinem Mega16 bei folgendem Quellcode:
void ADC_Init(void)
{
ADCSRA=(7<<ADPS0) | (1<<ADIE);
ADCSRA|=(1<<ADEN);
}
void ADC_StartConversion(char pin)
{
ADMUX=pin;
ADCSRA|=(1<<ADSC);
}
SIGNAL (SIG_ADC)
{
}
int main(void)
{
USART_Init(BAUD);
sei(); //Enable Interrupts
char text[]="test";
USART_Transmit_String(text);
ADC_Init();
ADC_StartConversion(0);
for(;;) { }
}
Sobald ADC_StartConversion() aufgerufen wird führt der µC einen Reset
durch und ich konnte keinen Fehler finden.
Wenn ich die AD Wandlung ohne Interrupt durchführe und mit einer
Schleife warte bis das Ergebnis bereitsteht funktioniert alles ohne
Probleme.
Achja, der Reset wird vor dem Ausführen des Codes in der
Interruptfunktion durchgeführt.
Schonmal danke für eure Hilfe!
Gruss Tux