Interrupt auf falscher Adresse

Gast #324520
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
Angehängte Dateien:
Gast #324521
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
Gast #324522
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.
Gast #324526
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.
#324527
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren