Interrupt-Probleme

Gast #29021
Lesenswert?

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 #29023
Lesenswert?

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 #29024
Lesenswert?

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 #29027
Lesenswert?

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 #29029
Lesenswert?

@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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren