Forum: Mikrocontroller und Digitale Elektronik Verständnisfrage zu Register


von Lüftung (Gast)


Lesenswert?

Hallo,

ich möchte gerne folgendes "verstehen":

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)

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?

Wäre für eine kleine Hilfestellung sehr dankbar!


mfg
Lüftung

von Karl H. (kbuchegg)


Lesenswert?

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.

von Spess53 (Gast)


Lesenswert?

Hi

>Wie ist es aber wenn als TOP ICR1 oder OCR1A steht? Kann ich dann
>praktisch programmiertechnisch sagen OCR1A = 100?

Ja. Allerdings steht die dann OC1A nicht mehr als PWM-Kanal zur 
Verfügung.

MfG Spess

von Lüftung (Gast)


Lesenswert?

Spess53 schrieb:
> Ja. Allerdings steht die dann OC1A nicht mehr als PWM-Kanal zur
> Verfügung.

Mal angenommen ich würde aus Tabelle 16-4 auf Seite 133 den Mode 10 
nehmen.
PWM Phase Correct  mit ICR1 als Top.

Da müsste ich doch theoretisch für ICR1 jeden beliebigen Wert eingeben 
können richtig? Die Frequenz meiner PWM müsste sich ja dann auch ändern 
denn laut Seite 128 berechnet sich die Frequenz aus 
Takt/(2*Prescaler*ICR1).

So könnte man doch die Frequenzbeschränkung umgehen richtig?
Normalerweise hätte ich ja als Top 255 / 511 oder 1023.


Oder bin ich da grade auf dem falschen Weg?



mfg
Lüftung

von Thomas E. (thomase)


Lesenswert?

Lüftung schrieb:
> Oder bin ich da grade auf dem falschen Weg?
Nein. Das ist richtig.

mfg.

von Lüftung (Gast)


Lesenswert?

Vielen Dank nochmal an Alle die geantwortet haben!

Das Datasheet ist zwar sehr aufgeräumt und recht übersichtlich, aber 
manchmal ist es eben doch anders wenn man von nem Kollegen was erklärt 
bekommt ;O)


Gruß
Lüftung

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.