Woran erkennst du, dass es nicht funktioniert. Geht die LED an oder nicht.
Wenn ja probier mal extreme werte wie 1 oder 254 für compare.
Halloich wollte mich jetzt an die PWM heranwagen....dazu habe ich das Programm von eurer Wiki seite hier genommen und entsprechend meinen bedürfnissen abgeändert......nur leider funktioniert es nun nicht......wo liegt der fehler?
meine Änderungen:Code:' Hardware PWM mit Timer1 $regfile = "m8def.dat" $crystal = 8000000 Config Pind.5 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1 Do Compare1a = 205 Loop End
-Taktfrequenz angepasst
-ausgabe pin geändert
-den 2. ausgang entfernt...
ich hoffe ihr könnt mir helfen.....
Woran erkennst du, dass es nicht funktioniert. Geht die LED an oder nicht.
Wenn ja probier mal extreme werte wie 1 oder 254 für compare.
die betreffende led geht gar nicht an......
hab jetzt noch etwas hinzugefügt:
mitCode:' Hardware PWM mit Timer1 $regfile = "m8def.dat" $crystal = 8000000 Config Pind.5 = Output Portd.5 = 1 Waitms 15 Portd.5 = 0 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1 Do Compare1a = 1 Loop End
Portd.5 = 1
Waitms 15
Portd.5 = 0
lasse ich die led kurz aufleuchten was auch funktioniert........die led und der ausgang funktionieren also-->es muss am programm liegen
also wenn es sich um einen mega8 handelt, denke ich, dass du mit portd.5 nicht weiter kommst. meines erachtens musst du den ausgang für timer 1a auf pin 15 = pb1 = oc1a erwarten.
gruss
und übrigens mit prescale = 1 haste ne ziemlich hohe frequenz. versuch zunächst mal prescale 1024.
ach soooooo dann ist das die HARDWARE PWM und nicht software seitig......aha..........wie mache ich das dann softwareseitig sodass ich einen beliebigen pin ansteuern kann? kann mir da einer ein (komentiertes) beispielprogramm schreiben? wäre nett!
mfg
vielleicht mit toogle oder pulsout
Das war ein bisschen komplizierter, hab da aber mal irgendwo ein Bsp. Code gefunden für eine RGB beleuchtung über Software PWM, das war glaub ich auch hier irgendwo => SUFU Softwarepwm
mfg milkbubi
ich denke, ne einfache pwm müsste sich so ergeben:
config porta.1 as output
dim zaehler as byte '<- wichtig, dass es byte ist
dim trigger as byte
do
if zaehler > trigger then set porta.1 else reset porta.1
zaehler = zaehler +1
loop
***** das ist zwar nich frequenzstabil, sollte aber ein pwm-signal erzeugen, dessen h-time vom wert trigger gesteuert wird.
wichtig ist, dass zaehler als byte definiert ist, damit es nach 255 überläuft und wieder auf null springt.
gruss
achso ... vergessen ... zum anfang sollte man trigger noch nen wert zuweisen.. vielleich 120
gruss
Lesezeichen