mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Interrupt auf falscher Adresse


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

Bewertung
0 lesenswert
nicht lesenswert
Hi ich bins scho wieder mit nem neuen Problem. Werden sicher scho welche
gehabt haben, weshalb ich hoff dass die Lösung schnell präsentiert wird.
Bin am verzweifeln:
Hab nen Timer0 Interrupt beim Atmega8 Programmiert und beim Simulieren
hupft mir der Prozi auf die falsche Adresse -> fangt dann wieder von
oben an (bei genauerer betrachtung springt er irgendwo in einen Bereich
vor main() rein und arbeitet halt main() nochmal ab und bleibt dann
endgültig hängen. Hab scho so ein Problem gehabt aber damals konnte
ichs  lösen ... wenns hilft ich bild mir ein das Prob lag am Makefile
Ich verwend die neueste WinAVR Version und Avr Studio 4.12 sp2 im
Anhang is der Quellcode.
danke scho mal im voraus

Autor: xyz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin!

Die Interruptadressen liegen ziemlich am Anfang der Einsprungadressen.

Also wenn Du schon Timer 0 Prgrammiert hast dann solltest Du auch einen
Sprungbefehl ab der Interrupeinsprungaadresse hinterlegen die deine
Interruptserviceroutine abarbeitet.

Hast Du es nicht getan brauchst Du dich nicht wundern das dein Programm
immer von vorne beginnt.

Schau mal ins Datenblatt oder hier ins Tutorial.

Gääähn

Autor: itachi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry hab vergessen dazuzusagen dass ich das mit winavr schreib also in
c. Da ist sowas soweit ich weis nicht notwendig. Zumindest beim
at86rf401 hab ich das im Makefile gelöst ..irgendwas war da falch aber
in diesem fall find ichs ned.

Autor: itachi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
deiner Ausssage nach zu urteilen hast du nicht mal in den Quellcode
geschaut oder ich bin sehr vergesslich was das den at86rf401
betrifft^^.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast vergessen in
interrupt.c
die noetigen includes  avr/interrupt.h
zu machen.

Dann passiert sowas.

Übrigens: keine gute Idee, deine eigenen Files
(interrupt.c, interrupt.h) genau so zu benennen
wie die vorgegebenen Systemfiles. Sowas führt nur zur
Verwirrung.

Autor: itachi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ahhh danke, ned dass da da compiler schreit O_O wäre sonst in 5 min
erledigt nein man is dumm und kann fehler nicht interpretieren :-)

Autor: itachi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bin zwar kein profi aber für meine zwecke kann ich meine
interrupt.c/interrupt.h und die <avr/interrupt.c> grad noch
unterscheiden.
wenn du mir raten würdest ich sollte alles in eine datei reinhaun um
diverse linkerprobleme zu verhindern versteh ichs noch abgesehen is es
so übersichtlicher ..naja jedenfalls danke jetzt funzzts einwandfrei.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> bin zwar kein profi aber für meine zwecke kann ich meine
> interrupt.c/interrupt.h und die <avr/interrupt.c> grad noch
> unterscheiden.

Ich bin Profi (Verdiene meine Brötchen mit SW-Entwicklung).
Wenn ich jedesmal wenn sich ein Nachwuchsprogrammierer
mit einfachsten Mitteln selbst ausgetrickst hat auch nur
10 Cent bekommen hätte, wäre ich ein reicher Mann.

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.