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.