Hallo,

Ich beschäftige mich gerade damit, ein Programm zu schreiben, welches einen Schrittmotor bewegen kann.
Dieses Programm besteht daraus, dass auf einem LCD erst ein Begrüßungsbildschirm zu sehen ist, dann eine Erklärungen, was der Benutzer alles eingeben kann und dann sollte sich der Schrittmotor je nach Eingabe drehen.

Möglich sind bis jetzt nur die Zahlen 1 und 2, da ich nur 2 Taster angeschlossen habe. Dazu kommt noch ein dritter, der als Bestätigungstaster dient.

Meine Frage ist nun:
Der Benutzer hat die Möglichkeit 1,2,11,12,21,22 einzugeben. Wie kann ich nun z.B in eine Variable speichern, wie oft pind.0(taster1) oder pind.1(taster2) gedrückt wurde.
Die Variable taucht später in der passenden For/next schleife auf, die dann den Moter 1 oder 2 oder 11 oder 12 oder 21 oder 22 dreht.


Wie muss ich das umsetzen? Ich komm irgendwie nicht mehr weiter...

Hier mein bisheriger code:


Code:
$regfile = "m8def.dat"
$crystal = 16000000


Declare Sub Sub1
Declare Sub Sub2
Declare Sub Enter
Declare Sub Startlcd
Declare Sub Erklaerung
Declare Sub Eingabe
Declare Sub Warnung

Dim Lcdxpos As Byte





Config Lcdpin = Pin , E = Portb.4 , Rs = Portb.3 , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
Config Lcd = 16 * 4
Config Lcdbus = 4

Ddrd = &B11110000
Portd = &B00100111

Label1:
Cls
Call Startlcd
Lcdxpos = 0


Do
Debounce Pind.0 , 0 , Sub1 , Sub
Debounce Pind.1 , 0 , Sub2 , Sub
Debounce Pind.2 , 0 , Enter , Sub

If Lcdxpos > 2 Then
Gosub Warnung



End If

Loop



Sub Startlcd
   Cls
   Locate 1 , 1
   Lcd "Willkommen bei:"
   Locate 3 , 1
   Lcd "*One-Two-Motion*"
   Cursor Off
   Wait 2
   Cls
   Gosub Erklaerung
End Sub




Sub Sub1
   Incr Lcdxpos
   Locate 3 , Lcdxpos
   Lcd "1"
End Sub




Sub Sub2
  Incr Lcdxpos
   Locate 3 , Lcdxpos
   Lcd "2"
End Sub



Sub Enter
End Sub





Sub Erklaerung
   Cls
   Locate 1 , 1
   Lcd "Erklaerung:"
   Locate 2 , 1
   Lcd "Taster1 = 1"
   Locate 3 , 1
   Lcd "Taster2 = 2"
   Locate 4 , 1
   Lcd "Bestaetigen = B"
   Cursor Off
   Wait 4
   Cls
   Locate 1 , 1
   Lcd "Das kannst du"
   Locate 2 , 1
   Lcd "eingeben:"
   Locate 3 , 1
   Lcd "1,11,12,2,21,22"
   Wait 5
   Cls

   Call Eingabe
End Sub






Sub Eingabe
   Locate 1 , 1
   Lcd "Wie viele Umdr.?"
   Locate 3 , 1
   Cursor Blink
End Sub



Sub Warnung
   Cls
   Locate 2 , 1
   Lcd "!!!Eingabe nicht"
   Locate 3 , 1
   Lcd "moeglich!!!"
   Wait 1
   Cls
   Goto Label1

End Sub

Vielen Dank

Timo