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
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
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.
deiner Ausssage nach zu urteilen hast du nicht mal in den Quellcode geschaut oder ich bin sehr vergesslich was das den at86rf401 betrifft^^.
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.
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 :-)
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.
> 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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.