Hallo
Timer0 scheint ein Problem zu haben bei der PWM-Generierung.
OC0A-Pin sollte einen kurzen positiven Puls liefern und OB0B einen negativen.
Mit Timer2 funktioniert das tadellos.
Ich verwende die aktuelle Version 2.0.8.2.
Als Fehlerquelle kann ich das File "m168def.dat" und auch die aktuelle "mcs.lib" ausschließen. Mit Bascom 2.0.8.1 habe ich das gleiche Problem.
Kann jemand von euch bestätigen, dass mit folgendem Programm an beiden Ausgabepins das gleiche raus kommt? Also jeweils neg. Puls?
Das wäre dann falsch.
Ich denke mit einen Mega 44, 88 oder 328 sollte sich der Effekt auch zeigen.
Alles anzeigen
Ich habe herausgefunden, dass die Bits wie in Zeile 11 und 12 angegeben falsch gesetzt werden. Wenn ich die einzeln von Hand lösche, bekomme ich auch eine Änderung der PWM, nicht aber, wenn ich Compare_A oder Compare_B mit Set oder Clear konfiguriere.
Mitch64
Timer0 scheint ein Problem zu haben bei der PWM-Generierung.
OC0A-Pin sollte einen kurzen positiven Puls liefern und OB0B einen negativen.
Mit Timer2 funktioniert das tadellos.
Ich verwende die aktuelle Version 2.0.8.2.
Als Fehlerquelle kann ich das File "m168def.dat" und auch die aktuelle "mcs.lib" ausschließen. Mit Bascom 2.0.8.1 habe ich das gleiche Problem.
Kann jemand von euch bestätigen, dass mit folgendem Programm an beiden Ausgabepins das gleiche raus kommt? Also jeweils neg. Puls?
Das wäre dann falsch.
Ich denke mit einen Mega 44, 88 oder 328 sollte sich der Effekt auch zeigen.
BASCOM-Quellcode
- ' Generierung einer 8-Bit PWM
- $Regfile = "m168def.dat"
- $Crystal = 8000000
- Wait 1
- ' PWM mit Timer0 fehlerhaft
- ' Frequenzausgabe an OC0A und OC0B
- ' OCnA Pins werden automatisch als Ausgang konfiguriert
- Config Timer0 = PWM , Prescale = 1 , Compare_A = Clear , Compare_B = Set , Clear Timer = 1
- 'Reset TCCR0A.COM0A0
- 'Reset TCCR0A.COM0B0
- OCR0A = 5 ' Tastverhältnis einstellen
- OCR0B = 5 ' Tastverhältnis einstellen
- Do
- NOP
- Loop
Ich habe herausgefunden, dass die Bits wie in Zeile 11 und 12 angegeben falsch gesetzt werden. Wenn ich die einzeln von Hand lösche, bekomme ich auch eine Änderung der PWM, nicht aber, wenn ich Compare_A oder Compare_B mit Set oder Clear konfiguriere.
Mitch64
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Mitch64 ()