Forum: Compiler & IDEs Atmega328P, PWM mit Timer1 Problem


von Hannes J. (hannes_j)


Angehängte Dateien:

Lesenswert?

Hi Gleichgesinnte :),

ich möchte mit einem Atmega328 mittels PWM 4 7-Segment-Anzeigen gemuxt 
und dimmbar ansteuern. Dabei sollen Timer0 und Timer1 je zwei 
gegenläufige PWM-Signale liefern und Timer2 soll das Umschalten des 
BCD-Codes steuern.

2 der Anzeigen kann ich mit dem Timer0 auch ansteuern, doch der Timer1 
verhält sich seltsamer Weise so, dass PB1 LOW bleibt und PB2 rumzuckelt, 
als würden beide PWMs darauf liegen.

Vielleicht findet jemand meinen Fehler? - Danke im Voraus! :)

-- Code im Anhang
PS: Dass ich in einem Funkweckerprojekt alle Timer für die Anzeige 
benutze mag einem erstmal komisch vorkommen, ist aber so gewollt

von Oliver S. (oliverso)


Lesenswert?

Ich finde im ganzen Code keine Zuweisung zum Timer1 OCR Register.

Dann noch ein Hinweis: Die Timer laufen nach Takt-Initialisierung sofort 
los. Wenn du die TCNT-Register auf Startwerte setzen möchtest, sollte 
das vor der Initialisierung passieren.

Oliver

von Thomas E. (thomase)


Lesenswert?

Oliver S. schrieb:
> Dann noch ein Hinweis: Die Timer laufen nach Takt-Initialisierung sofort
> los. Wenn du die TCNT-Register auf Startwerte setzen möchtest, sollte
> das vor der Initialisierung passieren.

Dafür gibt es das GTCCR-Register, mit dem man alle Timer anhalten und 
simultan starten kann.

mfg.

von Hannes J. (hannes_j)


Lesenswert?

Ja das war es! Das GTCCR-Register schau ich mir an. Danke! :)

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.