Hallo! Hich habe vor in paar Tagen schon mal geschrieben, weil ich Probleme mit den Interrupts beim simulieren in AVR Studio 4 hatte. Mit eurer Hilfe konnte ich das ganze zwar ein bisschen verbessern, aber so richtig toll scheint es noch nicht zu sein. Nun meine Frage, kann mir jemand ein Programm in Assembler geben, das die externen Interrupts verwendet? Dann könnte ich dort mal ein bisschen abgucken...
Ja mit diesem Prog funktionierts auch bei mir, aber da ich einen ATmega8 verwende ist es ein bisschen anders, sehe ich das richtig, dass wenn ein externer Interrupt vorhanden ist, dann im GIFR eine 1 in das dafür vorgesehene Bit geschrieben wird? Ich nehme an, dass das beim ATmega8 gleich ist, nur wird bei dieser Simulation auch ein Interrupt ausgelöst, wenn Bei GIFR alles auf Null ist!!??
Könnte es auch am Simulator liegen, dass es nicht so klappt wie es soll? Leider kenne ich grad keinen anderen, als der in AVRStudio 4.0, bei der Version 3.65 kann man den ATmega8 nicht simulieren! Weiss jemand einen anderen guten kostenlosen Simulator?? Oder hat mal jemand Lust mein Programmfragment bei sich zu simulieren und dann schauen ob das gleiche rauskommt oder sogar einen Fehler entdeckt??
Sorry, hab mich verguckt, wie kann ich da einen externen Interrupt simulieren?
Es kann in der Realität übrigens auch vorkommen, daß beim Initialisieren des externen Interrupts dieser sofort ausgelöst wird - obwohl kein Ereignis stattfand (das brachte mich bei der Fehlersuche schon mal zur Verzweiflung). Gerade bei Flankengetriggerten Interrupts kommt das vor. Abhilfe: Den Interrupt initialisieren + freigeben, dann vor der Freigabe der Interrupts durch SEI das entsprechende Flag "von Hand" löschen (einfach GIFR lesen und zurückschreiben - ist ein Interrupt-Flag ="1" wird es durch beschreiben mit eben dieser "1" gelöscht). Könnte sein, daß der Simulator entsprechend reagiert.
@thkaiser: An dem kann es glaube ich nicht liegen, denn 1. ist beim simulieren im GIFR immer alles auf 0 (also nie ein Interrupt vorhanden) und zweitens tritt dieser ungewollte Interrupt nicht nur einmal beim Initialisieren auf, sondern die ganze Zeit! @alle die das lesen: Falls jemand Lust und Zeit hat das ganze bei sich zu simulieren und seinen Kommentar dazu zugeben wäre ich froh, wie gesagt, es ist erst ganz der Anfang eines Programms, aber ich will nicht weiterfahren bevor dieses Problem nicht gelöst ist, denn sonst bin ich fertig damit und es funktioniert immer noch nicht wegen diesem Problem! Danke und Gruss
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.