Interrupt-Probleme

Gast #29021
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...
Gast
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!!??
Gast
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??
Gast
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.
Gast
@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
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 23 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.