- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 4 von 4

Thema: Umwandlung zur seriellen Übertragung

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.01.2006
    Ort
    Nidda
    Alter
    51
    Beiträge
    180

    Umwandlung zur seriellen Übertragung

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,

    ich habe einen Wert z.B. 40,37.
    Um den Wert seriell übertragen zu können muss ich ihn in das Format Byte bringen.
    Da der Zehnerwert immer <100 ist, ist das kein Problem:

    dim wert as integer
    wert = "40,37"

    dim zehner as byte
    zehner = wert

    Übertragen wird jetzt die 40.

    Für die Nachkommastelle hatte ich vorgeshen:

    dim nachkomma_temp as integer
    dim nachkomma as byte

    nachkomma_temp = wert - zehner ' macht 0,37
    nachkomma_temp = nachkomma_temp * 100 'macht 37,0

    nachkomma = nachkomma_temp

    Merkwürdigerweise kommt nun aber bei allen Werten > 26 kein richtiger Wert mehr an.
    Offensichtlich hängt das Programm beim Umwandeln eine 0 an wodurch ich den Wert 260 bekomme was bei Byte natürlcih nicht geht.

    Hat jemand eine andere Lösung?

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765

    Re: Umwandlung zur seriellen Übertragung

    [quote="elkokiller"

    dim wert as integer
    wert = "40,37"

    [/quote]

    40.37 klingt für mich nicht nach integer.

    Die serielle Übertragung sieht Werte als Text vor, da z.B. ein Wert 13 als CR erkannt wird.

    Ich behelfe mir immer so, wenn die Werte immer unter 127 sind, einfach das Bit 7 zu setzen und am PC wieder zu entfernen. Oder halt gleich "Klartext" senden und den PC die Arbeit machen lassen.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Die zahl einfach in einen String wandeln, übertragen und im Empfänger
    wenn nötig zurück wandeln.

    Code:
    A = 12.123                                                  'add 1 to it
    S = Str(a)                                                  'convert integer to strtring
    Print S
    
    A = Val(s)                                                  'convert strtring to integer
    Print A
    Gruß Richard[/code]

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765
    Bascom wandelt beim Senden automatisch um.

    dim wert as single
    wert=12.34
    print wert
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad