Timer ISR init bug?

OP #3179992
Lesenswert?

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???
#3180007
Lesenswert?

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.

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