Lüftung schrieb:
> Der 16bit Timer1 des Atmega328P bietet ja nun verschiedenste
> Möglichkeiten ein PWM Signal zu generieren.
>
> Wenn ich jetzt beispielsweise eine 8bit PWM mit 255/256 als Top haben
> möchte
> kann ich ja einfach WGM10 im Register TCCR1A setzen. (Seite 133)
Exakt.
Das ist praktisch gesehen ein PWM Modus, bei dem dir der TOP Wert von
der Hardware fix&fertig aufs Auge gedrückt wird.
> Wie ist es aber wenn als TOP ICR1 oder OCR1A steht? Kann ich dann
> praktisch programmiertechnisch sagen OCR1A = 100? Oder wie muss man das
> verstehen?
Du musst einen PWM-Modus auswählen, bei dem der TOP Wert nicht fix
sondern variabel ist. Diesen Modus wählst du aus und damit ist
festgelegt welches Register den TOP-Wert steuert. Und dort schreibst du
dann deinen gewünschten TOP Wert rein.
Auf seite 136, gibt es die Tabelle 15-4 in der das zusammengefasst ist:
Welcher Modus realisiert was und welcher TOP-Wert gilt dann. In allen
Modi in denen dort eine fixe Zahl steht (HEX-Schreibweise) gilt diese
fixe Zahl und sie ist nicht änderbar. In allen Modi in denen eine
Registerbezeichnung steht, gilt dieses Register und durch Zuweisen an
dieses Register legst du selber den TOP Wert fest.