mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Interrupt-Probleme


Autor: Pfi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Florian Pfanner (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier hast du ein Code-Fragment zum ausprobieren.

Gruß, Florian

Autor: Pfi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!!??

Autor: Pfi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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??

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die aktuelle Version AVR Studio 3.56 ünterstützt sehr wohl den MEGA8 in 
der Simulation.

Autor: Pfi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, hab mich verguckt, wie kann ich da einen externen Interrupt 
simulieren?

Autor: thkaiser (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur im I/O Window mit den entsprechenden Bits "spielen"

Autor: Pfi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Setz mal im Simulator PD2 & PD3 auf H-Pegel im IO-Window

Autor: Pfi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo sind die? Kann sie nicht finden!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.