Archiv verlassen und diese Seite im Standarddesign anzeigen : PWM Programm funktioniert nicht:-(
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?
' 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
meine Änderungen:
-Taktfrequenz angepasst
-ausgabe pin geändert
-den 2. ausgang entfernt...
ich hoffe ihr könnt mir helfen.....
milkbubi
09.11.2006, 14:57
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:
' 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
mit
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
kolisson
09.11.2006, 19:35
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
kolisson
09.11.2006, 19:41
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
kolisson
09.11.2006, 22:53
vielleicht mit toogle oder pulsout
milkbubi
10.11.2006, 11:09
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
kolisson
10.11.2006, 11:35
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
kolisson
10.11.2006, 11:39
achso ... vergessen ... zum anfang sollte man trigger noch nen wert zuweisen.. vielleich 120
gruss
was heißt denn am Anfang?
kolisson
10.11.2006, 21:12
also nochmal meine idee mit dem anfang
config porta.1 as output
dim zaehler as byte '<- wichtig, dass es byte ist
dim trigger as byte
trigger=127
do
if zaehler > trigger then set porta.1 else reset porta.1
zaehler = zaehler +1
loop
jetzt habe ich dem trigger auch nen wert zugewiesen. das hatte ich in dem ersten posting vergessen. in deinem ursprünglichen beispiel nimmst du ja pind.5 also änderst du mein porta.1 in portd.5 und du hast ne art pwm.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.