Forum: Mikrocontroller und Digitale Elektronik WGM12 (CTC) Timer AVR


von Jens J. (trial)


Lesenswert?

Laut einer PDF unseres Lehrers muss man wohl bei PWM Betrieb das WGM12 
bit auf 1 setzen.


Laut meiner Recherche im Internet soll dies wohl den compare match mode 
(oder so) aktivieren. Also löschen des Timers bei match. Das ist aber 
nicht ds was in der gleichen PDF als PWM erklärt wird. Denn da soll der 
Timer ja weiter zählen bis max, dann wieder runter zählen bis zum 
nächsten match etc.


Laut: 
https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Die_Timer_und_Zähler_des_AVR#16-Bit_Timer.2FCounter
hat dieses Bit in der PWM Betriebsart jedoch auch garkeine Funktion. 
Also wozu dann auf 1 setzen? Um die PWM Betriebsarten zu aktivieren wird 
laut diesem Link das WGM12 auch garnicht benötigt.


Und dann habe ich noch das hier gefunden:
http://sturm.selfhost.eu/wordpress/wp-content/uploads/2017/10/Bits-in-TCCR1.jpg

Zu dem WGM13 habe ich noch irgendwie garnichts gefunden (hab auch noch 
nicht gezielt gesucht). Doch wo ist denn jetzt der Unterschied zwischen 
Fast PWM x-bit und PWM Phase and Frequenzy correct?

Und was würde wohl passieren wenn ich in PWM Betriebsart den WGM12 auf 
Null lasse?

von Verzweifelter Kopfschüttler (Gast)


Lesenswert?

Jens N. schrieb:
> Laut einer PDF unseres Lehrers muss man wohl bei PWM Betrieb das WGM12
> bit auf 1 setzen.

Ich neheme an dass du ins Alter des Erwachsenseins kommst.
Dadurch ergibt sich eine gewisse Mündigkeit die es dir erlauben
sollte nicht alles zu fressen was man dir sagt sondern dir
eine eigene Meinung und das entsprechende Wissen anzueignen.

Will heissen: lies die Originaldokumentation, und die findet
sich im Datenblatt der verwendeten Controllers.

von frolic (Gast)


Lesenswert?

Jens N. schrieb:
> Laut einer PDF unseres Lehrers muss man wohl bei PWM Betrieb das WGM12
> bit auf 1 setzen.

Bei welchem Mikrokontroller konkret? ATmega8? ATmega328P? ... 
Verläßliches kann man nur in dem Datenblatt des entsprechenden µC 
nachlesen!

von Jens J. (trial)


Lesenswert?

> Bei welchem Mikrokontroller konkret? ATmega8? ATmega328P? ...
> Verläßliches kann man nur in dem Datenblatt des entsprechenden µC
> nachlesen!

Ah okay... ich war davon ausgegangen das, das was gleich heißt auch 
gleich benutzt wird. Also kann man so ohne weiteres quellen im Netz auch 
nur vergleichen wenn man genau weiß auf welchen Controller sie sich 
bezieht?!

von c-hater (Gast)


Lesenswert?

Jens N. schrieb:

> Ah okay... ich war davon ausgegangen das, das was gleich heißt auch
> gleich benutzt wird. Also kann man so ohne weiteres quellen im Netz auch
> nur vergleichen wenn man genau weiß auf welchen Controller sie sich
> bezieht?!

Jepp. Vieles ist zwar gleich, vieles aber auch nur ähnlich. Das ist 
sogar auf nur einem einzigen konkreten AVR8-µC schon so, oft sind die 
verfügbaren Timer leicht unterschiedlich in ihren Möglichkeiten und 
damit auch in ihrer Konfiguration.

Es gibt sicher Schnittmengen der Funktionalität, aber selbst diese sind 
sicher nicht für jeden Timer und auf jedem Target identisch zu 
konfigurieren.

von Jens J. (trial)


Lesenswert?

Beim Versuch mich mit den Datenblättern vertraut zu machen, stell ich 
fest das mich sowohl der Umfang als auch das Englisch an sich ziemlich 
erschlägt.

Mal eben nachschlagen und drauf los programmieren ist da nicht. Oder 
anders gesagt: ich habe gar keine Zeit das selbst zu erforschen, nicht 
wenn ich Fristen einhalten will.

Gibt's da ein paar tricks wie man sich trotzdem schnell durch sowas 
durcharbeiten kann? Worauf zu achten ist oder.. ja kp.... Der Druck der 
Unkenntnis stresst mich doch ziemlich.

von c-hater (Gast)


Lesenswert?

Jens N. schrieb:

> Beim Versuch mich mit den Datenblättern vertraut zu machen, stell ich
> fest das mich sowohl der Umfang als auch das Englisch an sich ziemlich
> erschlägt.

Dann hast du ein sehr grundsätzliches Problem. Das 
ATMEL/MIC-Datenblatt-Englisch ist ja nun wirklich ein sehr reduziertes 
und formalisiertes englisch. Wenn du das nichtmal verstehst, bist du als 
Entwickler sowieso schlicht vollkommen untauglich.

> Mal eben nachschlagen und drauf los programmieren ist da nicht.

Doch, natürlich. Wenn man einmal das Grundkonzept der Timer verstanden 
hat, braucht man zumindest zur Verwendung üblicher Funktionen doch nur 
noch Konfig-Bits und -Register nachschlagen. Dazu muss man dann nicht 
einmal mehr Englisch können.

> Oder
> anders gesagt: ich habe gar keine Zeit das selbst zu erforschen, nicht
> wenn ich Fristen einhalten will.

Tja. Jeder hat so seine Probleme...

> Der Druck der
> Unkenntnis stresst mich doch ziemlich.

Dann solltest du einfach was gegen die Unkenntnis tun. Dann drückt sie 
nicht mehr so sehr...

Oder, weniger förmlich: LERNE. Deine Gene als homo sapeiens ermöglichen 
es dir, du musst nur die Faulheit überwinden...

von Verzweifelter Kopfschüttler (Gast)


Lesenswert?

Jens N. schrieb:
> Worauf zu achten ist oder.. ja kp.... Der Druck der
> Unkenntnis stresst mich doch ziemlich.

Du hast die Aufgabenstellung ja knapp angedeuted.

Jens N. schrieb:
> Laut einer PDF unseres Lehrers muss man wohl bei PWM Betrieb das WGM12
> bit auf 1 setzen.

Demnach würde es vorläufig genügen die (geschätzten) drei Seiten
zum Timer durchzuarbeiten, das dürfte dich nicht allzu sehr
belasten.

von mein Name ist M (Gast)


Lesenswert?

Was haste denn nun für einen Controller?

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.