-
        

Ergebnis 1 bis 2 von 2

Thema: Tastenabfrage

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    20.04.2004
    Ort
    Basel
    Alter
    30
    Beiträge
    378

    Tastenabfrage

    Anzeige

    Hallo
    Ich habe zZ ein kleines Problem. Ich bin gerade dabei, ein LCD Menü (mit Start, Sensortest, Spannung etc) zu Programmieren. Zur Zeit bin ich soweit, dass ich über die Analogen Tasten des RNC an Porta.7 einen Menüpunkt auswählen kann, und dieser dann Schwarz unterlegt wird.
    Die Tastenabfrage funktioniert so (wie im RNC Manual)
    Code:
    Do
    Dim Taste As Byte
    
       Taste = Tastenabfrage()
       If Taste <> 0 Then
    
          Select Case Taste
             Case 1
                Call Lauflicht1                                 'Taste 1 Zeigt Bateriespannung über RS232 an
             Case 2
                Call Lauflicht2                                 'Taste 2 Motoren beschleunigen und abbremsen
             Case 3
                Call Batterie                                   'Einige male Lauflicht über LED´s anzeigen. Am I2C-Port darf in diesem Moment nichts angeschlossen sein
             Case 4
                Call Lauflicht4                                 'Zeigt Messwerte an allen Port A PIN´s
             Case 5
                Call Lauflicht5                                 'Zeigt digitalen I/O Zustand von PA0 bis PA5 an
    
    
    
          End Select
    
       End If
    
       Waitms 100
    Loop
    
    End
    
    
    
    
    'Diese Unterfunktion fragt die Tastatur am analogen Port ab
    Function Tastenabfrage() As Byte
    Local Ws As Word
    
       Tastenabfrage = 0
       Ton = 600
       Start Adc
       Ws = Getadc(7)
       If Ws < 1010 Then
          Select Case Ws
             Case 410 To 450
                Tastenabfrage = 1
                Ton = 550
             Case 340 To 380
                Tastenabfrage = 2
                Ton = 500
             Case 265 To 305
                Tastenabfrage = 3
                Ton = 450
             Case 180 To 220
                Tastenabfrage = 4
                Ton = 400
             Case 100 To 130
                Tastenabfrage = 5
                Ton = 350
    
          End Select
                                  'BEEP
       End If
    
    End Function

    Wenn nun Tastenabfrage = 3 ist, kommt er zu Spannungsmessung, welche dann schwarz unterlegt wird:

    Code:
    Sub Batterie()
        Cls
    
    Locate 1 , 7
    Lcd "M E N U"
    Locate 2 , 8
    Lcd "Start"
    Locate 3 , 6
    Lcd "Sensortest"
    Locate 4 , 1
    
    Lcd Chr(1)
    Lcd " Batteriespannung " ; Chr(1)
    dies funkt auch noch ganz gut. Nun will ich aber noch eine Tastenabfrage in diesem Subprogramm "Batterie" einführen, welcher beim Druck der gleichen Taste das Programm "Batteriespannung" startet, dh:

    Taste 3: Markieren "Batteriespannung"
    Erneut Taste 3: Ausführen Programm "Batteriespannung"
    (Beim druck einer anderen Taste sollte wieder das normale hauptmenu angezeigt werden.

    so, nun weiss ich aber nicht, wie ich das Programmieren muss. ich hoffe, jemand kann mir da etwas helfen

    danke und gruss
    Serge
    Meine neue Roboterhomepage:
    www.roboterwelt.ch.tf <--- Updates folgen

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    29
    Beiträge
    1.614
    Code:
    Sub Batterie()
        Cls
    
    Locate 1 , 7
    Lcd "M E N U"
    Locate 2 , 8
    Lcd "Start"
    Locate 3 , 6
    Lcd "Sensortest"
    Locate 4 , 1
    if taste1=1 then
    Lcd Chr(1)
    Lcd " Batteriespannung " ; Chr(1)
    else 
    gosub menu
    endif
    so ahb ich das jetzt verstanden, iss das richtig, oder was wolltest du?
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

Berechtigungen

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