Was ich mir dabei denke:
-WGM müsste denn PWM mode auswählen
-COM ob das Signal inverted wird oder nicht
-CS den Prescaler
-OCR den TOP value
Falls etwas nicht stimmt verbessert mich bitte!
Hoffe ihr könnt mir helfen!
Hi
>ich hab gedacht für Channel A ist das OCR1A!?
Du hast im Mode15 nur einen PWM-Kanal. Dabei ist OCR1A der Höchstwert
des Zählers (Top) und OCR1B der Compare-Wert. Wenn du 2 Kanäle haben
willst, solltest du Mode14 nehmen.
MfG Spess
Hi
>ich muss nur noch meinen vergleichswert eintragen und der zählt dann>quasi als hoch und runter?
Der muss aber kleiner als der OCR1A-Wert sein.
MfG Spess
OK aber was ist dann der Unterschied zwischen TOP und Compare value? ich
hab gedacht beim TOP value wird immer die Spannung an OC1 gändert?
Welcher Pin wird dann eig bei Mode 15 verwendet? OC1A oder OC1B?
einsteiger schrieb:> OK aber was ist dann der Unterschied zwischen TOP und Compare value? ich> hab gedacht beim TOP value wird immer die Spannung an OC1 gändert?
Der TOP Wert (Top = Obergrenze) ist der Wert, bis zu dem der Timer
zählt.
Für eine PWM brauchst du 2 spezielle Zählerstände. Bei einem der beiden
wird der Pin auf 1 geschaltet, beim anderen auf 0.
Bei allen Fast-PWM Modi ist es so, das der eine spezielle Zählerstand
der Übergang vom höchsten möglichen Timerwert auf 0 ist. Den andern
speziellen Zählerstand gibst du in einem Register vor.
Der Timer zählt also laufend (jetzt nur als Beispiel)
und während der Timer zählt, sorgt die PWM Logik dafür, dass der Pin
entsprechend dem Zählerstand auf 0 oder 1 gesetzt wird. Hat dein
Verrgl4eichsregister den zb den Wert 3, dann ergibt sich
wie du siehst, ist der Ausgang jetzt länger auf 1 als zuvor.
Mit dem Vergleichsregister legst du also fest, wie lange der AUsgang auf
1 geht und wie lange auf 0.
Aber wer sagt eigentlich, dass der Timer immer nur bis 8 zählen soll?
Niemand. Und genau da kommt der TOP Wert ins Spiel. In diesem Beispiel
wäre der TOP Wert 8 gewesen. Du kannst ihn aber auch auf von mir aus 12
setzen. Mit einem Vergleichswert von wieder 3, ergibt sich dann
Ok das mit OCR1A und OCR1B hab ich begriffen! Aber warum funktioniert
mein Programcode dann nicht!? Hab an den OC1A eine LED gehängt und den
Code wie oben bereits gezeigt draufgespielt!?
Du hast gesetzt WGM10, WGM11, WGM12, WGM13
Laut Datenblatt ist das Modus 15
Modus 15 bedeutet:
TOP Wert: OCR1A
Vergleichswert: OCR1B (muss so sein, weil A ja schon für TOP
gebraucht wird)
OCR1A setzt du.
Aber wo setzt du OCR1B?
Wo schaltest du den OC1B Pin auf Ausgang?
Wo teilst du dem Timer mit, dass der den OC1B Pin ansteuern soll?
Falls du es jetzt immer noch nicht begriffen hast:
Du kannst nicht den A-Kanal nehmen. OCR1A fungiert als TOP Wert und ist
damit automatisch aus dem Rennen.