Forum: Mikrocontroller und Digitale Elektronik Timer Problem Anfänger ratlos


von Bernd W. (wolf4124)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

kann mir mal jemand meinen einfachen Code anschauen.
Ich bin ratlos.
Habe schon alle Variationen ausprobiert.
Ich möchte in der Interuptrotine nur einen Merker setzen den ich in der 
Main auswerte (in meinem Fall einen Port toggeln).
Der Timer kommt korrekt. Nur die Variable ((Zaehler_Time00) wird nicht 
incrementiert oder so.

Gruß

wolf4124

von Helmut L. (helmi1)


Lesenswert?

Du must das DDRD Register setzen. Sonst hast du keinen Ausgangsport.

von Thomas R. (tinman) Benutzerseite


Lesenswert?


von Bernd M. (bernd_m)


Lesenswert?

Hi!

Es ist immer wieder hilfreich, die in der ISR veränderte und im Main 
abgefragte Variable als volatile zu deklarieren.

Der Compiler merkt das die Variable in der Schleife nicht verändert wird 
und optimiert entsprechendes weg, bzw. wird die Variable in einem 
Register gehalten und nicht neu aus dem RAM geladen.

Hast Du dir mal den Assembler dazu angeschaut?

Der Hinweis mit dem Data Direction Register sollte natürlich auch 
beachtet werden (in diesem Fall Port B), da die Ports nach Reset auf 
Input stehen.

Gruss Bernd

von Helmut L. (helmi1)


Lesenswert?

>(in diesem Fall Port B)

Ups gemeint und das falsche eingetippt.

von Bernd W. (wolf4124)


Lesenswert?

Hallo

danke für eure Antworten.
Das war der Fehler.

Gruß

wolf4124

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.