- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: ASCII in Byte umwandeln ( Servo über RS232)

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    16.03.2006
    Beiträge
    9

    ASCII in Byte umwandeln ( Servo über RS232)

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,
    vieleicht kann mir jemand helfen.
    Hab mir eine Platine gebaut an der ich Servos anschließen kann.
    Auf dieser ist ein Atmega zur Steuerung. Jetzt will ich mit dem PC über
    RS232 Daten an den Atmega senden. Das geht auch soweit ganz gut. Leider
    sind das aber ASCII zeichen. SO versteh ich das. Wenn ich z.B den Wert
    "50" per Hyperterminal sende kommen die Zahlen "13,10,53,48" an.
    Ich brauche aber die Zahl 50. Das ganze hab ich in Bascom geschrieben.
    Der Servo braucht ja den wert als Byte. Hoffe jemand kann mir da
    weiterhelfen. Leider kenn ich mich nicht so gut aus.

    Danke
    Matthias

  2. #2
    Nimm dir z.B. einen HEX-Converter, schreibe dort die Zahlen als HEX rein, bekommst den Chinesischen ähnlichen Zeichen raus. Diese Zeichen musst du über einen Terminal dann abschicken.

    Normalerweise macht man eine kleine Bedienoberfläche dazu. Mit einem normalen Terminal ist es richtige Quellerei.

    Eugen

    P.S. übrigens die Zahl "50" sollte eigentlich laut ASCII-Tabelle 0x35 0x30 sein.

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.12.2004
    Ort
    LEV
    Beiträge
    505
    Hallo,
    ich denke du hast die Zahlen verkehrt herum aufgeschrieben.
    Es müsste eigentlich 53, 48, 10, 13 sein.

    Die beiden letzten Zahlen (10,13) kannst du einfach weglassen bzw. ignorieren.
    Das ist nur die Ascii-Sequenz für CR-LF = Return.
    Für die Umwandlung in ein Byte brauchst die die 53 und die 48.
    die 53 steht für die "5" und die 48 für die "0".

    Angenommen du hast die beiden Zahlen in zwei Variablen:
    A = 53
    B = 48

    Die Umwandlung geht dann in Bascom ganz einfach:
    A = A - 48
    A = A * 10
    B = B - 48
    C = A + B

    fertig, das Byte steht jetzt in C

    Gruß Jan

  4. #4
    Das mit Carrage Return und Line Feed sollte stimmen, aber das andere verstehe ich irgendwie nicht. Die Dezimalzahlen von 0 bis 9 entsprechen soweit ich weiss 30 bis 39.

    Oder?

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    16.03.2006
    Beiträge
    9
    und wie bekomm ich die zahlen in die einzellnen variablen?

  6. #6
    Wenn du Interesse an LabVIEW hast, gibt es eine freie Version davon, wir zusammen kriegen das in einer halben Stunde fertig.
    Ansonsten irgendeine Programmiersprache lernen.

    Übrigens hier ist eine ASCII Tabelle und da sind die ASCII Zeichen von 0 bis 9 gleich den HEX-Zahlen von 30 bis 39.

    http://www.torsten-horn.de/techdocs/ascii.htm

    Eugen

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.12.2004
    Ort
    LEV
    Beiträge
    505
    Hallo,
    @eugengraf:
    Die Zahlen 0-9 sind den ASCII Codes 48 bis 57 dezimal zugeordnet.
    Das sind die Hex-Zahlen 30 - 39.

    @mechatron:
    >>und wie bekomm ich die zahlen in die einzellnen variablen?
    Sorry, das muss dir jemand anderes erklären...
    >>Das ganze hab ich in Bascom geschrieben.
    Was hast du denn in Bascom geschrieben ?
    Kannst du den Code mal hier posten ?

    Gruß Jan

  8. #8
    Zitat Zitat von JanB
    Hallo,
    @eugengraf:
    Die Zahlen 0-9 sind den ASCII Codes 48 bis 57 dezimal zugeordnet.
    Das sind die Hex-Zahlen 30 - 39.

    @mechatron:
    >>und wie bekomm ich die zahlen in die einzellnen variablen?
    Sorry, das muss dir jemand anderes erklären...

    Gruß Jan
    Zu 1) Stimmt allerdings.

    2) Ja und die Zahlen in Variablen bekommt man durch die Zuweisung.

    Eugen

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    16.03.2006
    Beiträge
    9
    sorry wenn ich so dumm frage aber wie sieht das in basecom aus?

  10. #10
    Ich denke es heisst Bascom und nicht Basecom.

    Ich kenne mich mit Bascom zwar nicht sehr gut aus, aber ich glaube es ist für uC-Programmierung und nicht für PC-Programmierung geschaffen.

    Eugen

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

LiFePO4 Speicher Test