Hallo, ich hab gerade unter C auf meinem Atmega164PA einen code geschrieben. Timer, Uart und ein paar IO's. Jetzt wollte ich die UART testen und hab im Code beispieöweise einen String an den PC gesendet. bis zum T von 'UART OK' ist er gekommen und ab da wiederholt sich der Zyklus. Dann hab ich die vorher kommentierte TimerISR, auskommentiert. Und siehe da die Schnittstelle ist voll da. Warum macht der µC so einen Murks wenn ich zwar den Timer initialisiere aber die zugehörige ISR nicht aufrufe???
Rafi Dafi schrieb: > Warum macht der µC so einen Murks wenn ich zwar den Timer initialisiere > aber die zugehörige ISR nicht aufrufe??? ich würde sagen er resetet sich, weil du keine ISR geschieben hast.
Peter II schrieb: > ich würde sagen er resetet sich, weil du keine ISR geschieben hast. Gibt es dafür den einen besonderen Grund das er sich resetet. Wird die Timer-Init nicht wegoptimiert wenn die ISR dazu nicht vorhanden ist?
Rafi Dafi schrieb: > Peter II schrieb: >> ich würde sagen er resetet sich, weil du keine ISR geschieben hast. > > Gibt es dafür den einen besonderen Grund das er sich resetet. Ja gibt es. Im avr-gcc wird so eine Situation so bewertet, dass die Standard-ISR zum Zuge kommt. Und die ist so gestaltet, dass die diese Situation als Fehler wertet und den µC resettet. > Wird die > Timer-Init nicht wegoptimiert wenn die ISR dazu nicht vorhanden ist? Wie soll der Compiler das machen? Der kann doch nicht einfach deine Timer Konfiguration wegoptimieren. Was ist wenn du den Timer so aufsetzt, dass überhaupt keine ISR notwendig ist, wenn zb der Timer ganz alleine eine PWM betreibt? Nö. Der Compiler kümmert sich darum, ob du die Grammatik der Sprache eingehalten hast. Ob das logisch Sinn macht oder nicht, das ist dein Bier.
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.