- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 9 von 9

Thema: Problem mit Counter für sog. "Skinner-Box"

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    15.05.2006
    Beiträge
    38

    Problem mit Counter für sog. "Skinner-Box"

    Anzeige

    E-Bike
    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:
    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
    Vielen Danke!

    PS: Skinner-Box: http://de.wikipedia.org/wiki/Skinner-Box

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842

    Re: Problem mit Counter für sog. "Skinner-Box"

    Ganz anspruchslos kannst du das machen, indem du nach =1 auf =0 wartest.
    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
    Wie gesagt, anspruchslos.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.02.2005
    Ort
    Salzburg
    Alter
    44
    Beiträge
    464
    entprellen kannst mit debounce pinx.x

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    15.05.2006
    Beiträge
    38
    Jap, klappt alles wunderbar!
    Taster ist entprellt, Zählern tuts auch - Vielen Dank!

    =D>

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    15.05.2006
    Beiträge
    38
    Hab jetzt noch nen Problem mit nem 2. Taster.

    Den ersten habe Folgendermaßen "angebaut"
    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
    Ich habe den 2. ähnlich angeschlossen:
    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
    Aber der 2. Taster wird einfach übergangen...
    (Die Namen habe ich soweit korrekt vergeben)

    Nochmals vielen Dank

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.02.2005
    Ort
    Salzburg
    Alter
    44
    Beiträge
    464
    Du brauchst noch eine loop über die debounce Argumente.
    Die Taster sollten doch ständig abgefragt werden, sonst läuft er einfach durch.

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    15.05.2006
    Beiträge
    38
    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

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    14.03.2006
    Beiträge
    35
    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

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    15.05.2006
    Beiträge
    38
    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

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress