Forum: Mikrocontroller und Digitale Elektronik PWM und/oder Simulationshilfe gesucht


von Hans Meier (Gast)


Lesenswert?

Hallo,

bin so langsam am verzweifeln...
Habe mir etwas über PWM angelesen und möchte damit nun auch ein wenig
"spielen". Habe einen AT90S2313 + 4MHz Quarz genommen und an PB3 (dem
PWM Pin) in Reihe ein R und LED Richtung GND geklemmt. Soweit so gut.
Bis hierhin klappt noch alles...
Was ich wollte, war das die LED wie folgt blinkt: 4sec an, 1sec aus,
4sec an, 1 sec aus usw. Also eine Frequenz von 1/5sec=0,2Hz mit einem
duty cycle von 80%.
Mit den Registern muss ich mich aber irgendwie stark vertan haben, bzw.
mache das immer wieder falsch:

TCNT1H = 0x4C 5sec als Obergrenze für Timer 1 einstellen
TCNT1L = 0x4B
OCR1H = 0x0F 1sec als Vergleichswert für PWM festlegen
OCR1L = 0x42
TCCR1A = 0xC3 invertierenden PWM und 10-bit PWM Modus setzen
TCCR1B = 0x05 Takt-Teiler von 1024 wählen

Nun macht die LED erst eine Zeitlang gar nichts, dann fängt sie ca. im
Sekundentakt ganz kurz an zu blinken.
Was mache ich falsch, bzw. was für Werte müssen die Register haben?
Leider habe ich kein Oszilloskop. Kann man so etwas irgendwie anders
messen, oder simulieren?

Gruß und Danke,

Hans

von crazy horse (Gast)


Lesenswert?

nun ja, bei Hardware-PWM ist die Zählerweite(1023) vorgegeben, das
Setzen con TCNT1 bewirkt nur beim ersten Mal was. Bei 10bit-PWM,
Vorteiler 1024 und Quarz 4MHz ergibt sich eine PWM-Frequenz von 1,9Hz,
und das ist auch schon die langsamste Frequenz, die mit Hardware-PWM
erreichbar ist.
Sinnvoller wäre es, beispielsweise alle 0,1s einen Timerinterrupt
auszulösen, in der ISR dann Zählen und daraus die entsprechenden
Portaktionen auszuführen.
Simulieren kann man das ganze mit AVR-Studio, erhältlich bei Atmel.

von Hans Meier (Gast)


Lesenswert?

Danke für den Wink mit dem Zaunpfahl.
Habe das Datenblatt ausgedruckt und die Seite (35) gefunden. Warum habe
ich das am Bildschirm bloß nicht gesehen. ARGH!

Hans

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.