mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Interrupt im atmega


Autor: Florian Hillen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

mein atmega 162 springt immer ans ende der interrupt vektortabelle
wenn der timer0 überläuft. Ich habe keine komischen Fuses gesetzt
nur externe Taktquelle. Naja jedenfalls springt der avr im studio4
immer falsch.

.cseg
.org $0000
  jmp RESET    ;reset entry vector
  reti
  reti
  reti
  reti
  reti
  reti
  reti
  reti
  reti
  reti
  reti
  reti
  reti
  reti
  reti
  jmp TIMER
  jmp TIMER
  reti
  reti
  reti
  reti
  reti
  reti
  reti
  reti
  reti
  reti

für infos wär ich dankbar
Florian

Autor: mmerten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
in der tabelle müssen entweder reti/nop sequenzen oder entsprechende
.org direktiven verwendet werden, da beim mega162 die tabelleneinträge
2 worte lang sind.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
reti ist ein Ein-Wort-Befehl. Die Interrupt-Vektoren beim Mega162 sind
aber 2 Wort breit. Entweder vor jedes reti ein nop oder ein jmp RESET
o.ä.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Entweder vor jedes reti ein nop...

Ich würd's dahinter machen. Dann werden die Interrupts, die eigentlich
gar nicht auftreten dürften, etwas schneller ignoriert ;-)

Autor: Kai Riek (kairiek)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein Vorschlag: Schreibe die ein "Default Int Unterprogramm" - DEFINT
(was 'n Name) in dem der reti Befehl steht. Dann alle reti's in
deiner Tabelle mit "jmp DEFINT" ersetzen.

MFG

Kai

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Am besten das Beispiel aus dem Datenblatt (beim Mega162 auf S. 60)
übernehmen und, wie Kai schon sagte, bei jedem nicht benutzten
Interrupt-Vektor einen Sprung in eine Standard-Ignorierungs-Routine
(also DEFINT oder so) setzen.

@Rolf:
Danke für den Tip;-) Jetzt weiß ich endlich, warum mein µC beim
Ignorieren immer so lahmt...

Autor: Florian Hillen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
supergut
vielen Dank Männer
Florian

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.