Forum: Compiler & IDEs Unterschied PWM mode 1 und 5 bei Attiny25


von Marc (Gast)


Lesenswert?

Guten Abend,


kann mir (blutiger Anfänger) jemand kurz den Unterschied zwischen den 
beiden PWM-modes 1 und 5 erklären?
Ich steig' gerade nicht mehr durch.
Laut Tabelle 11-5 und der Erläuterung auf Seite 77 im Datenblatt zählt 
der Timer bei Phase Correct PWM entweder von BOTTOM bis 0xFF oder von 
BOTTOM bis OCRA0, je nach Zusand der WGM-Bits in TCCR0.

Was für einen Sinn hat es überhaupt, den Timer bis OCRA0 zählen zu 
lassen? Ich dachte, der entsprechende Pin wird bei jedem compare match 
umgeschalten. Würde der Timer jetzt bei OCRA0 "umkehren", könnte man 
doch das Verhältnis der Pulsweiten zueinander gar nicht ändern, sondern 
nur die Frequenz des Umschaltens.

Was mich völlig verwirrt: ich probiere das ganze gerade an einer LED an 
PORTB0 aus, und egal ob ich WGM02 und WGM00 setze oder nur WGM00, es 
kommt immer das selbe raus.

Ich sitze gerade schon ziemlich lange vor dem Datenblatt bzw. meiner LED 
und denke, dass ich einfach irgendwo auf dem Schlauch stehe.


Hier noch der Code und wie gesagt, wird WGM02 nicht gesetzt, kommt das 
gleiche raus. (Setze ich z.B. OCRA0 = 200, leuchtet die LED stärker. 
soweit funktioniert's also schonmal):
1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3
#include <util/delay.h>
4
5
6
int main (void)
7
{
8
uint16_t i=0;
9
10
sei();
11
DDRB   |= (1<<DDB0) | (1<<DDB1);
12
13
TCCR0A |= ( (1<<WGM02) | (1<<WGM00) | (1<<COM0A1) );
14
TCCR0B |= ( (1<<CS01) | (1<<CS00) ) ;
15
16
OCR0A=20;
17
18
while (1)
19
{
20
}
21
}

Vielen Dank!

von Marc (Gast)


Lesenswert?

Ok, das beides mal das gleiche rauskam lag wohl daran, dass
WGM02 in TCCR0B liegt und nicht in TCCR0A.

Bleibt also nur noch meine Frage nach dem Sinn von Modus 5. Aber ich 
vermute mal, das Ganze dient einfach dazu, die PWM an die Frequenz zu 
koppeln.

Richtig?

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.