mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik [AVR] (ext) Interrupt aktivieren?


Autor: Christian F. (christian_f)
Datum:
Angehängte Dateien:

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

Autor: Christian F. (christian_f)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, die ISR in der Main.c haben noch gefehlt.

Autor: Lehrmann Michael (ubimbo)
Datum:

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

Autor: Christian F. (christian_f)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du den Code betrachtest, wird dir auffallen, dass ich mich ans 
Datenblatt gehalten habe...

Autor: Christian F. (christian_f)
Datum:

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

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.