Forum: Mikrocontroller und Digitale Elektronik Timer ISR init bug?


von Rafi D. (alexanderw)


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???

von Peter II (Gast)


Lesenswert?

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.

von Rafi D. (alexanderw)


Lesenswert?

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?

von Karl H. (kbuchegg)


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.

von Rafi D. (alexanderw)


Lesenswert?

Alles klar... gecheckt...

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
Noch kein Account? Hier anmelden.