Forum: Mikrocontroller und Digitale Elektronik Mega328: Timer0 PWM am Pin


von Manuel H. (manu77)


Lesenswert?

Ich habe ein Problem mit dem Timer0 und Fast-PWM (mega328p).
1
DDRD |= (1 << PIND5);
2
  
3
OCR0A = 17;
4
OCR0B = 10;
5
TCCR0A |= (1 << WGM00) | (1 << WGM01) | (1 << COM0B1);
6
TCCR0B |= (1 << WGM02) | (1 << CS00);

Der Code funktioniert. Am PD5 messe ich das richtige PWM-Signal.
Wenn ich aber statt COM0B1 COM0A1 setze, kann ich am PD6 nichts messen:
1
DDRD |= (1 << PIND6);
2
  
3
OCR0A = 17;
4
OCR0B = 10;
5
TCCR0A |= (1 << WGM00) | (1 << WGM01) | (1 << COM0A1);
6
TCCR0B |= (1 << WGM02) | (1 << CS00);

von spess53 (Gast)


Lesenswert?

Hi

>Wenn ich aber statt COM0B1 COM0A1 setze, kann ich am PD6 nichts messen:

Warum sollte auch? OCR0A dient bei dir als Top-Register. Damit kannst du 
OC0A nicht als PWM-Register benutzen.

MfG Spess

von Manuel H. (manu77)


Lesenswert?

spess53 schrieb:
> Warum sollte auch? OCR0A dient bei dir als Top-Register. Damit kannst du
> OC0A nicht als PWM-Register benutzen.

Logisch. So langsam versteh ich die Timer auch besser, danke.

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.