Archiv verlassen und diese Seite im Standarddesign anzeigen : Mal wieder PWM Probleme.....
Hi,
ich möchte ein PWM signal mit folgendem code erzeugen.
Aber leider habe ich die ganze Zeit nur 5V anliegen, anstatt (zum Test) abwechselnd 0V und 5V. Woran könnte das liegen?
$regfile = "m8def.dat"
$crystal = 1000000
Config Pinb.1 = Output
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1
Do
Compare1a = 1024
Wait 2
Compare1a = 0
Wait 2
Loop
Schonmal Danke für eure Hilfe!
Gruß
Jan
Lässt sich das direkte PWM-Signal wirklich als Spannung messen?
Soweit ich weiß nicht.
jon
Ich meß es ja hinter einem tiefpassfilter.
Aber bei compare1A=0 muss er eine Spannung von 0V haben, da er ja keinen high pegel hat.
Könnte es vllt an Config Pinb.1 = Output liegen?
Gruß
Jan
Nur so am Rande: Der "End" Befehl fehlt. O:)
Es sollte eigentlich "Config Portb.1 = Output" heißen, sollte aber auch nicht soo viel ausmachen.
Vielleicht hilft es auch etwas das "Config..." nach der PWM Initialisierung zu schreiben. Glaube ich aber kaum.
jon
das ist nur ein kleiner Teil aus dem code den ich rauskopiert habe. Die restlichen 6kB habe ich nicht mitgepostet...
Daran könnte es liegen, ich versuchs mal.
Gruß
Jan
so, ich habe noch ein bisschen rumprobiert, aber es funktioniert leider immernoch nicht.
Allerdings bekomme ich die Fehlermeldung "Can't find HW-register [DDR1",
wenn ich "config Pinb.1=Output" durch "config Portb.1=Output" ersetze.
Ich benutze das erste mal PWM, muss ich evtl irgendwelche fusebits verändern oder so?
Gruß
Jan
Fusebits musst du keine umstellen.
"Config Pinx.y = Output" stimmt doch. Da habe ich mich vertan.
Hat der Timer1 des ATMega8 eine 10bit Auflösung? Schau das nochmal im Datenblatt nach.
Probiere mal anstatt dem Tiefpass eine LED anzuschließen. Leuchtet die heller, bzw. dunkler, dann funktioniert das mit dem PWM. Dann hast du im Tiefpass einen Fehler.
jon
Laut Datenblatt kann der timer1 10bit. Ich habs mit 8bit versucht, es funzt auch nicht.
Mit dem LED test komme ich zum gleichen ergebnis, es liegen die ganze zeit volle 5V an.
Habt ihr irgendeine Vermutung?
Gruß
Jan
so, ich habe den Fehler gefunden......
Ich habe dem compare1a 1024 und 0 zugeordnet.
1024 ist kein gültiger 10bit Wert, es geht ja von 0 bis 1023.... so ein doofer Fehler. Mit 1023 funktioniert es. *freu*
Danke für eure Hilfe!
Gruß
Jan
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.