Ganz anspruchslos kannst du das machen, indem du nach =1 auf =0 wartest.
Wie gesagt, anspruchslos.Code:Do If Taster = 1 Then Ist = Ist + 1 Locate 1,1 Lcd "Ist :" ; Ist DO LOOP UNTIL Taster = 0 'warten auf loslassen End If Loop End
Moin Jungs!
Ich steh grad vor einem kleinen Problem und ich komme ienfach nicht auf die (wahrscheinlich zu triviale) Lösung.
Ich möchte auf einem LCD die Anzahl von Tastendrücken zählen (LCD funktioniert).
Allerdings wird momentan so lange weiter gezählt, wie der Taster gedrückt wird, und nicht pro Tastensruck Einmal.
Ich hoffe, ihr versteht, was ich meine...
Und das mit dem Entprellen bekomm ich auch nicht hin
Hier mein Jetziger Code:
Vielen Danke!Code:$regfile = "2313def.dat" $crystal = 8000000 Config Pind.6 = Input Taster Alias Pind.6 Dim Ist As Integer Ist = 0 Cursor Off Cls Do If Taster = 1 Then Ist = Ist + 1 Locate 1,1 Lcd "Ist :" ; Ist End If Loop End
PS: Skinner-Box: http://de.wikipedia.org/wiki/Skinner-Box![]()
Ganz anspruchslos kannst du das machen, indem du nach =1 auf =0 wartest.
Wie gesagt, anspruchslos.Code:Do If Taster = 1 Then Ist = Ist + 1 Locate 1,1 Lcd "Ist :" ; Ist DO LOOP UNTIL Taster = 0 'warten auf loslassen End If Loop End
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
entprellen kannst mit debounce pinx.x
Jap, klappt alles wunderbar!
Taster ist entprellt, Zählern tuts auch - Vielen Dank!
=D>
Hab jetzt noch nen Problem mit nem 2. Taster.
Den ersten habe Folgendermaßen "angebaut"
Ich habe den 2. ähnlich angeschlossen:Code:Debounce Taster , 1 , Tasteran [...] Tasteran: Do If Taster = 1 Then [Programmblock, der 1x bei Tasterdruck ausgeführt wird] DO LOOP UNTIL Taster = 0 'warten auf loslassen End If Loop End
Aber der 2. Taster wird einfach übergangen...Code:Debounce Taster , 1 , Tasteran Debounce Taster1 , 1 , Tasteran1 [...] Tasteran: Do If Taster = 1 Then [Programmblock, der 1x bei Tasterdruck ausgeführt wird] DO LOOP UNTIL Taster = 0 'warten auf loslassen End If Loop Tasteran1: Do If Taster1 = 1 Then [Programmblock, der 1x bei Tasterdruck ausgeführt wird] DO LOOP UNTIL Taster1 = 0 'warten auf loslassen End If Loop End
(Die Namen habe ich soweit korrekt vergeben)
Nochmals vielen Dank
Du brauchst noch eine loop über die debounce Argumente.
Die Taster sollten doch ständig abgefragt werden, sonst läuft er einfach durch.
Hat nicht wiirklich geklappt.. aber du hast mcih auf ne Idee gebracht:
Ich habe vo den Debounce-Block nen Label gesetzt. Nach ausführen des Taster-Befehls gehts zurück zum Entprell-Label![]()
Hi eIdea,
wenn Du den Debounce Befehl benutzt brauchst Du nicht darauf abzufragen ob der Pin wieder 0 ist. Sonst hängt Dein Prog. an dieser Stelle fest bis Du den Taster wieder loslässt.
Gruß
Rolf
Vielen Dank für den Hinweis, aber das ist nciht Schlimm, da daduch ja auch jede weitere Eingabe gesperrt ist, wenn ein Taster gedrückt wird, ist schon ok so![]()
Lesezeichen