Forum: Mikrocontroller und Digitale Elektronik immer Reset wenn ich einen externen Int. auslösen


von René (Gast)


Lesenswert?

Hallo Alle,

ich habe ein Problem mit meinem MEGA 128 und den externen Interrupts.
Immer wenn ich einen externen Int. auslöse (Eingang auf "0" ziehen)
dann startet der µC immer wieder vom Anfang seines Programms und macht
nicht an der Stelle weiter an der der Int. ausgelöst worden ist.

Kurz zum Programm:

EICRB=0xAA;  // die Interrupts INT 7-4 triggern bei fallender Flanke
enable_external_int ((1<<INT4) | (1<<INT5) | (1<<INT6));
sei();  // ist klar


ich weiß leider nicht woran es liegt..

vielleicht hat ja jemand eine Idee

Ciao René

von Florian Pfanner (Gast)


Lesenswert?

Vermutlich ist dein Interruptvektor nicht gesetzt. Kannst mal mitm
AVR-Studio durchsteppen, dann siehst es. Poste bitte mal deinen Code,
dann kann ich genaueres sagen.

Gruß, Florian

von René (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Florian,

danke für deine Hilfsbereitschaft, anbei mein Code. Auf meinem Displaxy
wird dabei im Sekundenschritt von 0-9 gezählt und wenn ich einen Int.
auslöse, dann soll die Hintergrundbeleuchtung des Displays blinken und
danach soll er an der entsprechenden Stelle weiterzählen.

Vielen Dank

von Florian Pfanner (Gast)


Lesenswert?

Hallo René,

das einzige was mir aufgefallen ist, dass du die Interrupts 4-6
aktivierst, aber nur für INT 4 einen Handler hast. Könnte mir
vorstellen, dass du vielleicht einen anderen Interrupt auslöst, für
welchen keinen Handler zur verfügung steht. Der Controller fängt dann
von Vorne mit dem Programm an.
Ich weiß aber auch nicht wie du die Interrupt-Pins beschaltet hast. Ich
würde die Pull-Ups trotzdem einschalten.

Gruß, Florian

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.