Forum: Mikrocontroller und Digitale Elektronik Problem: PWM mit Poti Reglen BASCOM


von Bernd (Gast)


Lesenswert?

Hallo,
Ich möchte eine PWM mit einem 10k Poti eisntellen.
Gefundenund getestet habe ich dieses Programm hier:

                     $regfile = "m16def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 8000000

Config Porta.1 = Input
Config Pind.5 = Output                                      '
Porta = &B00000010
Dim Analogwert As Word
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1
Config Adc = Single , Prescaler = Auto , Reference = Internal
Start Adc
Do

Analogwert = Getadc(1)
Analogwert = Analogwert / 2
If Analogwert > 255 Then Analogwert = 255
Pwm1a = Analogwert
Loop

End


Funktioniert auch, allerdings bekomme ich die PWM nicht ganz aus (Also 
PWM ist immer etwas größer null) und auch die max. Geschw. wird nciht 
erreicht.
Kann mir vielleicht jemand helfen warum es nicht klappt?
Wieso muss der Analogwert durhc vier geteilt werden?


Gruss

Alex

von Oliver _. (verleihnix)


Lesenswert?

Moin Alex oder Bernd :),

also ich mache die Config so:
Tccr2 = &B01110110 'Timer2 mit 61Hz PWM Frequenz beim Mega 8 !

Dann einfach ocr2 eine zahl von 0 - 255 geben und das PWM Signal
sieht entsprechend aus.
Die Variable ocr2 kannste auch direkt im Programm verwenden.
Am besten am Oszi das Signal anschauen.

Dein AD-Wandler macht 10bit (1024), der PWM aber nur 8-bit(256),
daher fängt er bei 256 wieder bei 0 an, weil überlauf wenn
Du DIM als Byte gewählt hast.

Sonst das Problem genauer beschreiben.

mfg
Oliver

von neuling101 (Gast)


Lesenswert?

Hi!

Lass mal folgende Zeile weg:

Porta = &B00000010

Eventuell noch Reference=off

mit diesen Änderungen geht der Analogwert bis auf 0 runter.

mfG

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
Noch kein Account? Hier anmelden.