mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Interrupt geht aber falsch


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

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,
kann mir jemand helfen, ich will die LEDS an meinem Board (STK500)
blinken lassen.
Leider funktioniert es nicht mit Interrupt.
Das Programm ist in Assembler und ist im Anhang!

Mal eine Fage "RETI"-Befehl bedeuted, dass nach dem Interrupt an die
Stelle zurückgekehrt wird, wo der Interrupt gestartet wurde, warum
startet das Programm dann wieder neu mit Initialisierung.

Autor: Mode (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ohne das Programm gesehen zu haben. In den FuseBits den Watchdog
aktiviert?

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nein ist nich aktiviert

Autor: ArminD (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Stackpointer ist nicht initialisiert.
Sprünge und Rücksprünge führen dann zu
merkwürdigen Effekten.


Gruss,
Armin

Autor: mmerten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ohne Stackpointer Initialisierung wird das nix.
Immer zuerst SPL und SPH mit den richtigen Werten (letzte RAM Adresse)
belegen.

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

Bewertung
0 lesenswert
nicht lesenswert
hier habe ich Stackpionter initialisiert, geht aber trotzdem nicht!
Das neue Programm ist im Anhang!

Autor: ArminD (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die LEDs werden in der Interruptroutine kurz
eingeschalten, aber sofort wieder im Hauptprogramm
ausgeschaltet. Vielleicht solltest Du im Timerinterrupt
die LEDs togglen und den Zugriff im Hauptprogramm
entfernen.


Gruss,
Armin

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ldi temp, low(RAMEND)  ;Stackpointer initialisieren
> out SPL, temp
> ldi temp, high(RAMEND)  ;Stackpointer initialisieren
> out SPL, temp

Du schreibst zweimal SPL statt SPL und SPH!

Ansonsten teile ich Armins Ansicht...

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.