mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wo liegt der Fehler im Interruptvector


Autor: Weihnachtsmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Nachdem ich mein Program nicht lief habe ich die Interruptvectoren
andere angesprochen. Wenn ich nur die einzelnen mit Vectoren mit
Adresse anspreche geht es. Wenn ich es mit der Liste und "Reti"
mache
geht es nicht. Was mache ich falsch?


.include "m16def.inc"

.equ CLOCK = 6000000    ;Taktfrequenz für Quarz
.equ BAUD  = 9600    ;Baudrate von RS232
.equ UBRRVAL  = CLOCK/(BAUD*16)-1   ;Berechnen der Baudrate

.def Temp = r16          ;Temporäres Register
.def Send = r17          ;Register für Senden


So läuft die Sache nicht;

rjmp RESET           ;Reset Handler
reti       ;IRQ0 Handler
reti       ;IRQ1 Handler
reti       ;Timer2 Compare Handler
reti       ;Timer2 Overflow Handler
reti       ;Timer1 Capture Handler
reti      ;Timer1 CompareA Handler
reti      ;Timer1 CompareB Handler
reti       ;Timer1 Overflow Handler
reti      ;Timer0 Overflow Handler
reti      ;SPI Transfer Complete Handler
rjmp int_rxc  ;USART RX Complete Handler
reti       ;USART Data Register Empty
reti        ;USART, Tx Complete
reti        ;ADC Conversion Complete
reti        ;EEPROM Ready
reti        ;Analog Comparator
reti        ;Two-wire Serial Interface
reti       ;External Interrupt Request 2
reti        ;Timer/Counter0 Compare Match
reti        ;Store Program Memory Ready




Jetzt mach ich es so und es läuft:

.CSEG
.ORG  $000  rjmp Reset
.ORG  $016  rjmp int_rxc



Gruss

Weihnachtsmann

Autor: mmerten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die Interrupt-Vektoren bei allen AVR mit > 8k FLASH sind double word
organisiert.
Also immer .org direktive benutzen oder bei ungenutzten
RETI
NOP
codieren

Autor: Weihnachtsmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo mmerten


Danke für die Antwort. Da hätte ich noch lange probieren können.

Gruss

Weihnachtsmann

Autor: joschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
der outputpmax 02528 kann nur einen fehler haben und der liegt doch auf
der hand wenn du das nicht weißt bist du ganz schön blöd ps gruß
elektrotechnik gmbh fuchs

Autor: Weihnachtsmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaub man muss blöd sein das 3x zu posten.

PS:
Administrator soll doch so Schwachsinn bitte löschen.

Autor: andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
den fehler begehen viele am anfang! ich bin auch drauf reingefallen und
habe heute gerade auch einen threat beantwortet, der auch den fehler
hatte!

mfg andi

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.