Forum: Mikrocontroller und Digitale Elektronik hilfe mit timern


von shaby (Gast)


Lesenswert?

hallo,
ich bin gerade dabei mich mit dem thema timer zu beschäftigen. habe mir 
auch schon das tutorial dazu durchgelesen 
http://www.mikrocontroller.net/articles/AVR-Tutorial:_Timer

ich habe noch auf anderen seiten gesucht und diese zeile gefunden:
1
 TCCR0 = (0<<FOC0) | (1<<WGM00) | (1<<COM01) | (0<<COM00) | (0<<WGM01) | (0<<CS02) | (1<<CS01) | (1<<CS00);
ich habe aber beim besten willen kein plan was das bedeuten soll. wie 
gesagt ich beschäftige mich zum ersten mal damit.

von Gandalf (Gast)


Lesenswert?

shaby schrieb:
> ich habe noch auf anderen seiten gesucht und diese zeile gefunden:
>  TCCR0 = (0<<FOC0) | (1<<WGM00) | (1<<COM01) | (0<<COM00) | (0<<WGM01) |
> (0<<CS02) | (1<<CS01) | (1<<CS00);
>
> ich habe aber beim besten willen kein plan was das bedeuten soll. wie
> gesagt ich beschäftige mich zum ersten mal damit.

Welchen Mikrokontroller benutzt du und hast du das Datenblatt dazu?

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

shaby schrieb:
> beim besten willen kein plan was das bedeuten soll

der oben aufgeführte Ausdruck ist aber "grundsätzlich" nix 
timer-spezifisches, den wirst du auch ähnlich an anderen Stellen 
vorfinden (vorgefunden haben)

von Karl H. (kbuchegg)


Lesenswert?

Wie WV schon sagte:
Die Syntax zum Setzen von Bits solltest du eigentlich schon intus haben.

Und den Rest, welches Bit was bedeutet, das findest du im Datenblatt.
Eine kleine Anleitung, wie man sinnvoll vorgeht, findet sich zb hier
FAQ: Timer

Und nein, ohne das Datenblatt wird das nichts. Du brauchst das 
Datenblatt um nachzusehen, welches Bit was bedeutet und wie die 
Zusammenhänge sind. Atmel hat das ohnehin recht übersichtlich in den 
Datenblättern am Ende jedes großen Kapitels zusammengefasst. Nur sehr 
wenige Programmierer kennen alle Bits auswendig. Wir alle sehen im 
Datenblatt nach, was was bedeutet.

FAQ: Timer


Was der Originalprogrammiere hier natürlich ganz schlecht gemacht hat
1
 TCCR0 = (0<<FOC0) | (1<<WGM00) | (1<<COM01) | (0<<COM00) | (0<<WGM01) | (0<<CS02) | (1<<CS01) | (1<<CS00);
ist, dass er die Bits nicht nach Funktionsgruppen sortiert 
aufgeschrieben hat. Die beiden WGM-Bits gehören beispielsweise zusammen 
und sollten auch beieinander stehen. Ob man die nicht benutzten BIts 
aufführt oder nicht, ist zu einem nicht unerheblichen Teil auch 
Ansichtssache.

Man könnte, und viele bevorzugen das auch, das ganze auch so schreiben.
1
 TCCR0 = (1<<WGM00) | (1<<COM01) | (1<<CS01) | (1<<CS00);
Denn ohne einen passenden Kommentar, kann man im Source Code das ganze 
sowieso nicht lesen.

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.