PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PWM Steller mit LCD, aber zähler läuft nicht



scream!!!!
11.09.2005, 22:14
Hallo,

ich habe da mal ne Frage bzw. ein Problem

Mit meinen Mega 8 wollte ich einen PWM Steller realísieren. Mein Problem bei meinen Programm ist, bzw. auf dem Mega8, ich kann mit dem Poti von 0 bis 256 hochdrehen und alles funktoniert, allerdings wenn ich runter drehe, dann zählt er von 256 bis 100 normal, aber statt die letzten 99 schritte weiter abwärts zu zählen springt er eine potenz höher und zählt von 999 zu gegen null. Zusammengefasst 256->100->999>014.

Ich weiss einfach nicht, was das sein könnte?
Kann mir da jemand einen Rat geben?


$regfile = "m8def.dat"
$crystal = 3686400
$baud = 9600


Dim Result As Word
Dim Channel As Byte

'Dim Licht As Word

Config Lcd = 16 * 2

Dim N As Integer
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2

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

Config Portb = Output
Portb = &HFF


Config Adc = Single , Prescaler = Auto , Reference = Avcc
Set Sfior.adhsm


Cls

Lcd "Facharbeit-PWM"

Wait 1

Cls

Lcd "PWM"

Start Adc

Do

Result = Getadc(0) 'Analogwert wird auf c.0 eingelesen

Result = Result / 4 'Teiler 1024/4

Compare1a = Result 'Zählerstand als PWM

Lowerline
Lcd "1:" ; Str(result) 'Zählerstand ausgeben


Loop

End

Marco78
11.09.2005, 22:24
Probier mal nur
LCD Result

pebisoft
11.09.2005, 22:24
in der lcd-anzeige wird die eine 9 nicht gelöscht. gib mal vor zeile lcd... noch einmal ein cls ein.
Set Sfior.adhsm kannste auch vergessen, brauchste nur wenn du den adc von hand selber proggen tust über die registerbefehle.
du hast auch den hang, die registerbefehle in den fertigen bascomsalat reinzubringen, ist aber überflüssig, wenn du die ganze überwachung dem bascom übergeben tust und das hast du ja gemacht. du musst dich vorher entscheiden ob du mit den avr-registern proggen willst oder nicht, mischen ist unsinn und verschwendet speicherplatz.
mfg pebisoft

Stromi
11.09.2005, 23:10
Benutze die Format Funktion:


$regfile = "m8def.dat"
$crystal = 3686400
'$baud = 9600


Dim Result As Word
'Dim Channel As Byte

'Dim Licht As Word

Config Lcd = 16 * 2

'Dim N As Integer
Dim Test(2) As String * 2

Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2

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

Config Portb = Output
Portb = &HFF


Config Adc = Single , Prescaler = Auto , Reference = Avcc
'Set Sfior.adhsm


Cls

Lcd "Facharbeit-PWM"

Wait 1

Cls

Lcd "PWM"

Start Adc

Do

Result = Getadc(0) 'Analogwert wird auf c.0 eingelesen

Result = Result / 4 'Teiler 1024/4

Compare1a = Result 'Zählerstand als PWM
Test(1) = Str(result)
Test(2) = Format(test(1) , "000")
Lowerline


Lcd "1 zu " ; Test(2) 'Zählerstand ausgeben


Loop

End

MfG
Stromi

scream!!!!
14.09.2005, 08:21
Hi, vielen dank für eure Hilfe.
dank Stromi läufts nun auch wunderbar.