-         

Ergebnis 1 bis 7 von 7

Thema: rn-keylcd tastenabfrage, mehrstellige zahl, demoprogramm

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    22.02.2008
    Beiträge
    7

    rn-keylcd tastenabfrage, mehrstellige zahl, demoprogramm

    Anzeige

    ein freundliches hallo an alle!!
    meine hardware: RN-Control 1.4 über I2C mit rn-keylcd 1.2 verbunden, Bascom

    komme einfach nicht weiter und starte erneut einen hilferuf.

    ich möchte z.b. die dreistellige zahl "128" eintippen und dann auch auf dem display sehen. außerdem soll RN-Control dann mit der zahl "128" weiterrechnen. mit einstelligen zahlen krieg ich das hin, aber eben nicht mit mehrstellig.

    finde so ein programm sollte rn-keylcd auch als demoprogramm beiliegen, da eine solche anwendung meiner meinung nach für rn-keylcd logisch ist.

    danke, danke,
    andreas (tomhut)



    hallo, -ich bins nochmal,
    vielleicht kennt ja von euch jemand ein beispielprogramm oder demo, wo aus den nacheinander eingetippten zahlen eine mehrstellige wird? -also aus der getippten 1+2+8 ne 128 wird. ich komm echt nicht weiter.
    ich bau übrigens grad ne schrittmotor-betriebene foto-stativ-schwenkeinheit, und brauche die tastatur und das display, um einzutippen wieviel grad geschwenkt werden soll.
    grüße,
    andreas (tomhut)

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    22.02.2008
    Beiträge
    7
    hallo,
    scheint wohl eine echt schwierige aufgabe zu sein. -da hab ich rn-keylcd anscheinend ganz schön überschätzt.
    -ich finde tatsächlich nirgends irgendwelche beispielprogramme, wo mein problem nachvollziehbar gelöst wird.
    grüße,
    andreas (tomhut)

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Hallo Andreas,
    willst du immer eine 3-stellige Zahl eingeben (also 002, 020, 200) oder unterschiedliche Länge (2, 20, 200)?
    Wenn du ganz flexible sein willst, hängst du das eingegebene Zeichen an eine String-Variable MyStr an und holst dir den Wert dann mit val(MyStr).
    Zeig doch mal den Code für eine Ziffer einzulesen, dann kann man den auf mehrere Ziffern erweitern.

    Gruß

    Rolf

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    09.05.2007
    Beiträge
    202
    Hallo Andreas,

    vielleicht liegt kein Beispielprogramm bei, weil davon ausgegangen wird dass ein so einfaches Problem von jemandem, der sich mit Programmieren beschäftigt, ohne Weiteres gelöst werden kann.

    Mein Ansatz wäre: Wert der ersten Taste in eine Variable schreiben. Wenn die nächste Taste gedrückt wird, die Variable mit 10 multiplizieren und den neuen Wert addieren. Beim nächsten Tastendruck wiederholst du das Ganze.
    Entweder legst du eine Taste (Enter) fest, nach deren Druck die Variable dann verwendet wird oder du schreibst das Ganze in eine Schleife mit Zähler. Wenn innerhalb einer gewissen Zeit keine Taste mehr gedrückt wird, geht das Programm weiter und die Variable wird verwendet.
    Gruß, Stefan

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    22.02.2008
    Beiträge
    7
    hallo,
    ja! -das hört sich wirklich einfach an! -werd gleich mal ausprobieren.
    ich geb bescheid, wenns geklappt hat. -kann aber dauern, da ich gleich weg muss.
    vielen vielen dank!

    finde aber wirklich, dass zwischen dem standard-demoprogramm "hello world" und den weitern demoprogrammen oft ne riesengroße lücke klafft.

    denke ich komme jetzt weiter, -danke

    andreas

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    22.02.2008
    Beiträge
    7
    hallo nochmal,
    vielen vielen dank für die hilfen!!!!!!!

    jetzt klappt alles perfektest! -tja, auch die einfachsten sachen muss man lernen!

    andreas

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    27.10.2006
    Ort
    Dortmund
    Beiträge
    79
    So hab ich es auch gemacht, leider zu spät gesehen.
    ICH benutze ein Keypad, per PS/2 angeschlossen am Rn 2650 und dem Display3000 TFT, alles funktioniert wunderbar....

    Code:
    '_____X-Abfrage_________________________________________________________________
    Do
       E = Getatkbd()
    
       Num1x1 = Chr(e)
       Num1x = Val(num1x1)
       If E > 0 Then Call Lcd_print(num1x1 , 80 , 85 , 1 , 1 , 1 , White , Black)
       If E = 0 Then Loop Else Nop
    
    Do
       R = Getatkbd()
    
       Num2x2 = Chr(r)
       Num2x = Val(num2x2)
       If R > 0 Then Call Lcd_print(num2x2 , 89 , 85 , 1 , 1 , 1 , White , Black)
       If R = 0 Then Loop Else Nop
    
    Do
       U = Getatkbd()
       If U = 13 Then Gosub Wert2_x Else Nop
       Num3x3 = Chr(u)
       Num3x = Val(num3x3)
       If U > 0 Then Call Lcd_print(num3x3 , 98 , 85 , 1 , 1 , 1 , White , Black)
       If U > 20 Then Gosub Enterx Else Loop
    
    Enterx:
    Do
       Q = Getatkbd()
       If Q = 13 Then Gosub Wert1_x Else Loop
    
    
    Wert2_x:
       Num1x = Num1x * 10
       Weite_x = Num1x + Num2x                                  'Nummx ist der Wert für den X-Vorschub
       Gosub Y_abfrage
    End
    
    
    Wert1_x:
       Num1x = Num1x * 100
       Num2x = Num2x * 10
    
       Numx = Num1x + Num2x
       Weite_x = Numx + Num3x                                   'Nummx ist der Wert für den X-Vorschub
       If Weite_x > 150 Then Ueberschreiten Else Nop
       Gosub Y_abfrage
    End
    Vielleicht kann ja jemand noch etwas damit anfangen...

Berechtigungen

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