Forum: Mikrocontroller und Digitale Elektronik ATmega Timer CTC ASM


von Bruno M. (brumay)


Lesenswert?

Hallo,

Ich habe ein Problem beim Verständnis der Datenblätter!

Einfache Frage:
Kann ich einen Timer im CTC Modus immer zum TOP laufen lassen (mit 
interrupt)? Das heißt, ohne daß ich einen Vergleichswert vorgebe.

von S. L. (sldt)


Lesenswert?

> Einfache Frage

Ich verstehe sie trotzdem nicht - das zweite C in 'CTC' steht ja für 
compare: vergleichen. Und der Vergleichswert definiert TOP, steht z.B. 
bei einem ATmega328 in OCR1A bzw. ICR1.

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Bruno M. schrieb:

> Einfache Frage:
> Kann ich einen Timer im CTC Modus immer zum TOP laufen lassen (mit
> interrupt)? Das heißt, ohne daß ich einen Vergleichswert vorgebe.

Also erstmal: du solltest bei so einer Frage als erstes klarstellen, 
dass du primär die AVR8-Architektur und sekundär "Classic"-Atmegas 
(teilweise auch ATtinys) meinst. Es gibt andere Archtekturen und andere 
µC innerhalb der AVR8-Architektur!

Nun die Antwort: Nein. Im CTC-Modus ist der Vergleichswert essentiell. 
Genau das macht nämlich den CTC-Modus aus. Der Vergleichswert IST hier 
TOP.

von Rainer W. (rawi)


Lesenswert?

Bruno M. schrieb:
> Kann ich einen Timer im CTC Modus immer zum TOP laufen lassen (mit
> interrupt)? Das heißt, ohne daß ich einen Vergleichswert vorgebe.

Wie willst du das bewerkstelligen?
Im Register steht immer irgend ein Wert drin, auch wenn du dort nichts 
rein schreibst.

von Bruno M. (brumay)


Lesenswert?

Danke für die klaren Antworten!

von S. L. (sldt)


Angehängte Dateien:

Lesenswert?

Vielleicht, zum besseren Verständnis, noch diese Tabelle.

von Peter D. (peda)


Angehängte Dateien:

Lesenswert?

Ich finde, die Tabelle im Datenblatt bringt alles ganz genau auf den 
Punkt.
Man beachte den feinen Unterschied zwischen TOP und MAX.

Wenn ich dagegen mal die Datenblätter der neueren AVR mit ihrem 
Geschwurbel sehe, wird mir übel. Viele Fragen bezüglich der neuen Timer 
bleiben dort unklar.

Bruno M. schrieb:
> Kann ich einen Timer im CTC Modus immer zum TOP laufen lassen (mit
> interrupt)? Das heißt, ohne daß ich einen Vergleichswert vorgebe.

Der Resetwert der Compareregister ist 0x0000, d.h. ohne Initialisierung 
geht da nichts.

von Georg M. (g_m)


Angehängte Dateien:

Lesenswert?

Peter D. schrieb:
> Wenn ich dagegen mal die Datenblätter der neueren AVR mit ihrem
> Geschwurbel sehe, wird mir übel. Viele Fragen bezüglich der neuen Timer
> bleiben dort unklar.

Die neueren AVR sind verständlicher.

von Axel S. (a-za-z0-9)


Lesenswert?

Bruno M. schrieb:
> Ich habe ein Problem beim Verständnis der Datenblätter!

Eher schon ein Verständnisproblem mit Begriffen.

> Kann ich einen Timer im CTC Modus immer zum TOP laufen lassen (mit
> interrupt)? Das heißt, ohne daß ich einen Vergleichswert vorgebe.

CTC steht für Clear Timer on Compare match.

In diesem Modus zählt der Counter aufwärts und wird beim Erreichen des 
Vergleichswerts zurück auf 0 gesetzt. "CTC Modus benutzen" und "keinen 
Vergleichswert angeben" widerspricht sich somit. Und abgesehen davon ist 
immer ein Vergleichswert gesetzt. Das COMPx Register kann nicht 
"keinen Wert" enthalten. Wenn du es nie schreibst, hat es halt noch den 
Wert vom Reset (üblicherweise 0).

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.