Mega16 führt Reset bei Interrupt durch

Gast #99956
Lesenswert?
• ▲
▼
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
Gast #99959
Lesenswert?
• ▲
▼
Hallo
Mein ATMEGA16 macht auch reset beim Interrupt , nachdem ich ape´s
Programm laufen habe ( 6100 Display) und ein Encoder am INT1 geklemmt
habe..

Gibt es dann keine Fehlermeldung beim compilieren wenn <avr/signal.h>.
fehlt??

Aart

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren