PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PWM Signal in BASCOM



BlackBroom
30.04.2007, 08:05
Hallo,
Möchte per PWM einen Fahrtregler ansteuern und nutze folgenden Code:


Config Pinb.4 = Output

Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1

Do
Compare1a = 151
Loop


Aber trotzdem bewegt sich der Motor am Fahrtregler nicht. Woran könnte das liegen? Was mache ich falsch? Am richtigen PIN ist der angeschlossen, nämlich am PB4 (OC0).
Brauche Hilfe.

michael.bend
30.04.2007, 10:24
Moin, Moin,

ich denke du solltest, wenn du COMPARE1A ansteurst, auch den Pin OC1A nehmen und nicht OC0. Probiert das mal, dann sollte es gehen. Ich gehe hier mal davon aus das du einen MEGA32 hast, da wäre es dann auch so.


Viele Grüße,

(Michael)

Emotionslos1
30.04.2007, 11:42
Hallo ich bin neu

kannst du mir bitte erklären was oc1a bzw. oc1b beteutet?

danke

Emotionslos1
30.04.2007, 11:44
kann ich jeden ausgang für einen pwm steuerung ferwenden oder nur den oc1a und oc1b?

michael.bend
30.04.2007, 12:23
Moin,

https://roboternetz.de/wissen/index.php/Bascom_und_PWM beantwortet alle Fragen. Lies dir mal die verschiedenen Themen im www.roboternetz.de/wissen durch, da wird eine ganze Menge erklärt.


Viele Grüße,

(Michael)

BlackBroom
30.04.2007, 12:44
Hallo,
Mit dem anderen Code konnte ich den Fahrtregler nicht ansteuern.
Aber mit folgenden:



Config Servos = 1 , Servo1 = Portb.5 , Reload = 8

Config Portb = Output

Enable Interrupts

Dim I As Single

Do
Servo(1) = 131
Print I
Loop


Beim Wert 131 ist der Motor aus. Beim Wert 130 geht der an und hat ein recht langsames Tempo. Beim Wert 110 ist der dann am schnellsten.

nover
30.04.2007, 23:46
das ist das was ich schon ein mal gesagt hatte sau ins Datenblatt dann wüstes du das du nicht Timer0 sondern Timer1 Initialisierst.
Noch mal zum mit malen (ist nicht böse Gemeinde )
Das (
DDRB . 4 = 1
TTCR0 = &b00111010
)
Ist das was du machen möchtest zu Fus IN Bascom und bei ein vergleich mit deinem Code müste dir auffallen das dein Fehler darin liegt das du Timer1 ansprichst. Folglich müsste man nur
(
Config Timer0 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1
)

Mfg
Das Novj

nover
30.04.2007, 23:56
das ist das was ich schon ein mal gesagt hatte sau ins Datenblatt dann wüstes du das du nicht Timer0 sondern Timer1 Initialisierst.
Noch mal zum mit malen (ist nicht böse Gemeinde )
Das (
DDRB.4 = 1
TTCR0 = &b00111010
und
OCR0 = 151
)
Ist das was du machen möchtest zu Fus IN Bascom und bei ein vergleich mit deinem Code müste dir auffallen das dein Fehler darin liegt das du Timer1 ansprichst. Folglich müsste man nur
(
Config Timer0 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1
und
Compare0 = 151
)

Mfg
Das Novj