Forum: Compiler & IDEs Frage zu PWM


von Ferrice (Gast)


Lesenswert?

Hab zwar schon im µC forum gepostet aber da hab ich leider noch keine
antwort bekommen..

Ich möchte gerne eine Fast PWM mit meinem mega8535 machen und
irgendwie
haut das ganze nicht so hin.
Hab das datenblatt jetzt schon öfters durchforstet aber ich komme
nicht
so ganz drauf.

Meine Schritte:
1.)(DDRB = (1<<PB3) Pin andem sich oc0 befindet auf ausgang setzten.
2.) WGM00 und WGM01 setzen ---- FAST PWM
3.) COM00 und COM01 setzen ---- wenn der vergleichswert erreicht wird,
wird OC0 gesetzt. Wenn der Timer max erreicht hat, wird OC0 gelöscht.
4.) CS00 setzen .. Prescaler einstellen.. (hier kein prescaler da ich
mit dem simulator arbeite)
5.)OCR0 -- Vergleichswert laden... z.b. 0xF

so und jetzt müsste doch die ganze geschichte laufen oder??
oder hab ich da was falsch verstanden..

aber im simulator kann ich nicht mal sehen das sich der Wert 0x0F im
OCR0 befindet.. Erst wenn der Timer einen Overflow macht, steht OCR0
im
Simulator auf 0x0F.

der wert von OCR0 müsste doch erhalten bleiben.. oder muss ich den bei

jedem max vom timer wieder refreshen????

Code:

#include <avr/io.h>
#include <lcd.c>



void main ()
{
DDRB = (1<<PB3);
TCCR0 = (1<<WGM01) | (1<<WGM00) | (1<<COM01) | (1<<COM00) | (1<<CS00);
OCR0=0x0F;


for(;;);

}


Danke für eure Hilfe.
greets

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.