BlaueLed
30.01.2007, 20:17
Hallo,
ich lese über "Temperatur = getadc(0)" den Analogeingang 0 meines mega16 ein. Wenn ich mir den Wert per "lcd Temperatur" anzeigen lasse, funktioniert es einwandfrei. Jetzt würde ich gerne in der zweiten Zeile eine Art Balkendarstellung des Wertes anzeigen lassen. z.B. so:
Wenn Wert zwischen 900 und 1000 dann kein balken
Wenn Wert zwischen 800 und 900 dann ein Balken ( also # )
Wenn wert zwischen 700 und 800 dann zwei Balken ( ## )
usw...
momentan benutze ich folgenden code:
'--------------------- Chipdefinition ------------------------------
$regfile = "m16def.dat"
$crystal = 16000000
'$hwstack = 32
'$swstack = 10
'$framesize = 40
'--------------------- ADC Config --------------------------------
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
'--------------------- Display Config ---------------------------
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
'------------------------- Port Definition -----------------------
Config Porta = Input
'--------------------------------- Dims ---------------------------
Dim Temperatur As Word
'--------------------------- Hauptprogramm --------------------
Cls
Cursor Off Noblink
Do
Temperatur = Getadc(0)
Locate 1 , 1
Lcd "Temp. : " ; Temperatur
If Temperatur > 1000 And Temperatur < 1023 Then Locate 2 , 1 : Lcd ""
If Temperatur > 900 And Temperatur < 999 Then Locate 2 , 1 : Lcd "#"
If Temperatur > 800 And Temperatur < 899 Then Locate 2 , 1 : Lcd "##"
If Temperatur > 700 And Temperatur < 799 Then Locate 2 , 1 : Lcd "###"
If Temperatur > 600 And Temperatur < 699 Then Locate 2 , 1 : Lcd "####"
If Temperatur > 500 And Temperatur < 599 Then Locate 2 , 1 : Lcd "#####"
If Temperatur > 400 And Temperatur < 499 Then Locate 2 , 1 : Lcd "######"
If Temperatur > 300 And Temperatur < 399 Then Locate 2 , 1 : Lcd "#######"
If Temperatur > 200 And Temperatur < 299 Then Locate 2 , 1 : Lcd "########"
Wait 2
Cls
Loop
ich bekomme aber auf dem lcd mit diesem Code auch in der ersten Zeile nen balken. Also stimmt da irgendwas nicht. Kann mir da jemand bitte helfen ?
mfg Kay
ich lese über "Temperatur = getadc(0)" den Analogeingang 0 meines mega16 ein. Wenn ich mir den Wert per "lcd Temperatur" anzeigen lasse, funktioniert es einwandfrei. Jetzt würde ich gerne in der zweiten Zeile eine Art Balkendarstellung des Wertes anzeigen lassen. z.B. so:
Wenn Wert zwischen 900 und 1000 dann kein balken
Wenn Wert zwischen 800 und 900 dann ein Balken ( also # )
Wenn wert zwischen 700 und 800 dann zwei Balken ( ## )
usw...
momentan benutze ich folgenden code:
'--------------------- Chipdefinition ------------------------------
$regfile = "m16def.dat"
$crystal = 16000000
'$hwstack = 32
'$swstack = 10
'$framesize = 40
'--------------------- ADC Config --------------------------------
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
'--------------------- Display Config ---------------------------
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
'------------------------- Port Definition -----------------------
Config Porta = Input
'--------------------------------- Dims ---------------------------
Dim Temperatur As Word
'--------------------------- Hauptprogramm --------------------
Cls
Cursor Off Noblink
Do
Temperatur = Getadc(0)
Locate 1 , 1
Lcd "Temp. : " ; Temperatur
If Temperatur > 1000 And Temperatur < 1023 Then Locate 2 , 1 : Lcd ""
If Temperatur > 900 And Temperatur < 999 Then Locate 2 , 1 : Lcd "#"
If Temperatur > 800 And Temperatur < 899 Then Locate 2 , 1 : Lcd "##"
If Temperatur > 700 And Temperatur < 799 Then Locate 2 , 1 : Lcd "###"
If Temperatur > 600 And Temperatur < 699 Then Locate 2 , 1 : Lcd "####"
If Temperatur > 500 And Temperatur < 599 Then Locate 2 , 1 : Lcd "#####"
If Temperatur > 400 And Temperatur < 499 Then Locate 2 , 1 : Lcd "######"
If Temperatur > 300 And Temperatur < 399 Then Locate 2 , 1 : Lcd "#######"
If Temperatur > 200 And Temperatur < 299 Then Locate 2 , 1 : Lcd "########"
Wait 2
Cls
Loop
ich bekomme aber auf dem lcd mit diesem Code auch in der ersten Zeile nen balken. Also stimmt da irgendwas nicht. Kann mir da jemand bitte helfen ?
mfg Kay