- Labornetzteil AliExpress         
Ergebnis 1 bis 4 von 4

Thema: Zeichen zuordnen

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.01.2007
    Beiträge
    209

    Zeichen zuordnen

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,
    ich bekomme von einem µC, welcher an einer Tastatur angeschlossen ist, per UART Zeichen rein. Diese Zeichen kommen hintereinander rein, sollen aber in eine Variable. Hab viel rumprobiert, bin aber zu keinem Ergebnis gekommen.
    Kann mir jemand einen Tipp geben?

    MfG Killer

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    30.07.2007
    Alter
    40
    Beiträge
    214
    Also ich hab hier mal einen kleinen Programmausschnitt wo sowas passiert:
    Code:
    Dim InByte as Byte
    Dim InString as String*24
    
    Do
          InByte = inkey()                       'Zeichen aus Empfangspuffer abholen
          If InByte <> 0 then                    'wenn Zeichen vorhanden
             InString = InString + chr(InByte)   'Byte in entsprechenden Character umwandeln und an den String anfügen
          End if
    Loop until InByte = 0
    Das Beispiel geht davon aus, das ein String Zeichen für Zeichen (also Byte für Byte) seriell empfangen wird und die einzelnen Bytes dann wieder zu einem String zusammengesetzt werden. Das klappt bei mir wunderbar.
    Vielleicht hilft es dir ja weiter.

    Gruß, Cairol.

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    und was machste wenn ne 0 gesendet wird?

    urxc find ich da besser
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    30.07.2007
    Alter
    40
    Beiträge
    214
    Das ist kein Problem, denn verglichen wird hier ja nur das Zeichen das in der Ascii-Tabelle an der Stelle "0" steht - was dem Steuerzeichen "NUL" entspricht.
    Die "0" als Zeichen wird also nicht als "0" gesendet, sondern als Byte mit Wert "48" (vgl. Ascii-Tabelle).

    Deshalb wandelt man die eingehenden Byte-Werte auch mit dem Befehl chr(InByte) wieder in die eigentlichen Zeichen um, bevor man sie an den String anfügt.

Berechtigungen

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

12V Akku bauen