Hallo, Ich hab ein Problem mit der PWM, und zwar versuche ich schon seit 2 Tagen eine LED auf meinem Testboard mit halber Helligkeit brennen zu lassen. Da mir divers Codes aus dem Internet nicht wirklich weiter geholfen haben, versuch ichs hier mal;-) Das Ziel wird es später sein über einen BUZ 11 eine Halogenlampe zu dimmen. So schwer kann das ja nicht sein, da der Timer1 ja eine "PWM Betriebsart" hat, oder irre ich mich da? Der Controller ist ein AT90S2313 und programmieren tu ich in Bascom. Hilft mir da vielleicht Pulsout weiter? Wär nett, wenn ihr mir weiter helfen könntet. Mfg Jörg Nitsche
Sorry, hab versehentlich mein Opera nicht aktualisiert, und dachte der erste Beitrag sein nicht erschienen, und jetzt das ganze noch mal geschrieben;-/ Wär gut wenn jemand dieses Thread wieder löschen könnt. Jörg Nitsche
hi, wenn du einen timer mit pwm betriebsart hast würd' ich das auf jeden fall vorziehen. der vorteil liegt im regelmässig ausgegebenen signal für pwm. einen pulseout kannst du nur zwischen die anderen befehle packen, hast du dann subroutinen, die z.b. strombegrenzung machen, hast di in der zeit keinen pulseout. der nachteil am pwm liegt nur darin, dass du mit dem ausgabeport ocr1x 'verheiratet' bist. der klare vorteil liegt darin, dass dein signal immer ansteht. beispeil: config timer1 = pwm, pwm = 8, compare a pwm = cleaur up, prescale = 1 ' --------------- x=125 ' halbe leistung do pwm1a = x if getadc(0) > 500 then gosub weniger ' strom übersteigt wert x loop ' --------------- sub weniger if x > 0 then decr x ' leistung verringern return so gehts recht brauchbar, in sub's lässt sich die leistung schön an jede anforderung anpassen gruss, harry
Hallo, Danke für die schnelle Antwort, ich hab deinen Code mal angepasst, und er siegt jetzt so aus $regfile = "2313def.dat" $crystal = 3686400 Dim X As Byte Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1 ' --------------- X = 125 ' halbe leistung do pwm1a = x if getadc(0) > 500 then gosub weniger ' strom übersteigt wert x loop ' --------------- Declare Sub Weniger if x > 0 then decr x ' leistung verringern returnso aus: Bascom bringt jetzt immer noch den Fehler 101: Can`t find HW register. Was bedeutet das? Eins noch, welches ist den der PWM Port beim 90S2313, im Datenblatt hab ich da komischerweiße nichts gefunden. Mfg Jörg
der pwm-output beim 2313 ist PinB.3 (OC1). steht im datenblatt unter Timer1 in pwm-mode beschrieben. wenn die zuweisung pwm1x nicht klappt kannst du auch das register direkt angeben, statt pwm1x muss es dann ocr1 oder ocr1a heissen, weiss ich im moment nicht ganz geneu, bischen probieren. wenn's klemmt kann ich dir den code raussuchen, ich hab den 2313 mit pwmout schon eingesetzt. gruss, harry
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.