Hallo Leute, da mir die gefundenen Foreneinträge nicht weiter helfen, stelle ich meine Frage. Ich habe vorher das Kapitel "Programmieren mit Interrupts" im ACR-Tutorial gelesen und m.E. alles befolgt, was das Datenblatt und das Tutorial sagt. Ziel: Ich will mit Hilfe eines ATmega2560 und einem externen Taster, der PortD.0 auf Gnd zieht, einen Interrupt auslösen. Sichtbar soll dies sein, in dem eine LED o.ä. angeschaltet werden soll (PORTC). Zusätzlich habe ich eine while(1) in die ISR gesetzt, damit diese nicht mehr verlassen wird. In der Hauptschleife des Programms zählt eine 8-Bit Variable hoch, die gleichzeitig an 8 LEDs ausgegeben wird. So kann ich überprüfen, ob der Controller noch Arbeitet. Sollte der Interrupt Int0 auslösen, müssten die LEDs stehen bleiben. Mein Problem ist jedoch, dass der Interrupt nicht auslöst. Neben bei enthält die Datei noch Code für den AD-Wandler, dessen Interrupt jedoch auch nicht auslöst. Ich habe das Gefühl, dass ich eine Art globalen ON/OFF-Schalter für die Interrupts übersehen habe. Wäre jemand so freundlich und nimmt mir die Tomaten von den Augen? mfg Christian
Servus, hast du vielleicht mal das Datenblatt betrachtet. Du sollst nicht beim Tutorial Code-Klau betreiben sonder das Datenblatt lesen und dann selbst das machen =) Da steht's ziemlich ausführlich ...
Wenn du den Code betrachtest, wird dir auffallen, dass ich mich ans Datenblatt gehalten habe...
Ich habe mittlerweile das AVRStudio installiert und meine Code simuliert. Sobald ich im Simulator händisch das Interrupt-Flag im Register EIFR setzen (INTF0), wird meine ISR abgearbeitet. Stellt sich also nun die Frage, warum das Interrupt-Flag nicht gesetzt wird.
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.