hallo!
Ich habe zur Zeit dieses Programm auf dem Chip:
Code:
Declare Sub Taste1()
Declare Sub Taste2()
Declare Function Tastenabfrage() As Byte
Declare Sub Taste3()
Declare Sub Taste5()
Declare Sub Taste6()
Declare Sub Willkommen()
$regfile = "m8def.dat"
Dim Ws As Word
Dim Adc_ohne_taste As Word
$crystal = 16000000
$baud = 9600
Config Adc = Single , Prescaler = Auto
Config Pinc.0 = Input
Portc.0 = 1
Start Adc
Dim Taste As Byte
Config Pind.6 = Output
Portd.6 = 0
Dim ___lcdno As Bit
Config Lcdpin = Pin , E = Portc.3 , Rs = Portc.2 , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5
Config Lcd = 16 * 4
Adc_ohne_taste = Getadc(0)
Call Willkommen
Do
Taste = Tastenabfrage()
If Taste <> 0 Then
Select Case Taste
Case 1
Call Taste1
Case 2
Call Taste2
Case 3
Call Taste3
End Select
End If
Loop
End
Function Tastenabfrage() As Byte
Tastenabfrage = 0
Ws = Getadc(0)
If Ws < Adc_ohne_taste Then
Select Case Ws
Case 330 To 370
Tastenabfrage = 1
Case 260 To 300
Tastenabfrage = 2
Case 100 To 130
Tastenabfrage = 3
End Select
End If
End Function
Sub Taste1()
Sound Portb.0 , 500 , 300
Lcd "1"
End Sub
Sub Taste2()
Sound Portb.0 , 500 , 300
Initlcd
Lcd "2"
End Sub
Sub Taste3()
Sound Portb.0 , 600 , 400
Initlcd
Lcd "3"
End Sub
Sub Taste5()
___lcdno = 0
Initlcd
Cursor Off
Cls
Home
Lcd "Taste5"
End Sub
Sub Willkommen()
___lcdno = 0
Initlcd
Cursor Off
Cls
Locate 1 , 1
Lcd "Zahl eingeben:"
Lowerline
Cursor Blink
End Sub
Sub Taste6()
Initlcd
Cursor Off
Cls
Locate 1 , 1
Lcd "Taste6"
End Sub
Nun steht in der ersten Zeile auf dem LCD "Zahl eingeben" dann wird der blinkende Cursor in die Zeile darunter gesetzt.
Wenn ich jetzt die Taster 1-3 drücke klappt ja alles bis auf das, dass er nach x belibiegen eingegebenen Zeichen aus der oberen einen Teil der Zeichen löscht und in eine andere Zeile setzt.
Was ich möchte ist, dass ich erstmal mit den Tastern eine durchgehende,fortlaufende Zahlenreihe eingeben kann.
Gibt es da einen best. Befehl?
was ist daran falsch?
mfg
Timo
Danke
Lesezeichen