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é
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.