- Akku Tests und Balkonkraftwerk Speicher         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Datenformat bei der Übertragung über CAN

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

    Datenformat bei der Übertragung über CAN

    Anzeige

    Praxistest und DIY Projekte
    Hallo,

    die Speicherstellen des CAN, in diesem Fall des MCP2515, werden als Byte deklariert

    Code:
     Const Txb0ctrl = &H30                                      ' Transmit Buffer 0 Control Register
     Const Txb0sidh = &H31                                      ' Transmit Buffer 0 Std Identifier High
     Const Txb0sidl = &H32                                      ' Transmit Buffer 0 Std Identifier Low
     Const Txb0dlc = &H35                                       ' Transmit Buffer 0 Data Length Code
     Const Txb0d0 = &H36                                        ' Transmit Buffer 0 Data Byte 0
     Const Txb0d1 = &H37                                        ' Transmit Buffer 0 Data Byte 1
     Const Txb0d2 = &H38                                        ' Transmit Buffer 0 Data Byte 2
     Const Txb0d3 = &H39                                        ' Transmit Buffer 0 Data Byte 3
     Const Txb0d4 = &H3A                                        ' Transmit Buffer 0 Data Byte 4
     Const Txb0d5 = &H3B                                        ' Transmit Buffer 0 Data Byte 5
     Const Txb0d6 = &H3C                                        ' Transmit Buffer 0 Data Byte 6
     Const Txb0d7 = &H3D                                        ' Transmit Buffer 0 Data Byte 7
    Ich kann damit jeden Wert zwischen 0 und 256 übertragen.

    Wenn ich nun aber den Wert 25,6 oder -18,4 übertragen möchte bekomme ich ein Problem.

    Kann mir jemand sagen wie ich damit umgehen kann?

    Tobias

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Lies mal da, vielleicht hilft das:
    https://www.roboternetz.de/wissen/in...cherstrukturen
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

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

    ich denke dass es leider nicht die Antwort auf meine Frage war. Trotzdem Danke!

    Ich habe, wenn ich es richtig verstanden habe, beim CAN Bus nur die Möglichkeit Bytes zu übertragen. D.h. die WErte dürfen nur zwischen 0 und 255 sein.

    Ich möchte aber gerne eine Temperatur mit dem Wert von z.B. -15,3 übertragen.

    Hat da noch jemand eine Idee?

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    37
    Beiträge
    4.255
    Dann musst du die Daten wohl auf mehrere Bytes verteilen...

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.01.2006
    Ort
    Nidda
    Alter
    51
    Beiträge
    180
    offenbar komme ich da nicht herum

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    entweder deine single-variable in ähhmmm ... waren es 4 byte?
    glaub schon , also 4 byte zerlegen und wieder zusammensetzen
    oder halt als stringwerte übertragen ... -15,3 währen dann
    auch 5 byte
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.01.2006
    Ort
    Nidda
    Alter
    51
    Beiträge
    180
    dein oder verstehe ich nicht.
    Ich kann doch keinen Stringwert übertragen, oder?

    wie kann ich den Wert -15,3 zerlegen?

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    wieso nicht? jedes Zeichen ist ein Byte Stichwort ASCII
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.01.2006
    Ort
    Nidda
    Alter
    51
    Beiträge
    180
    ja schon, aber wie trenne ich die einzelenen Bytes voneinander?

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    am Einfachsten gehts mit overlayvariablen

    dim temperaturwert as string * 5
    dim bytearray (5) as byte at temperaturwert overlay

    dann schreibste einfach den temperaturwert als string
    und kannst aus dem array die einzelnen bytes auslesen
    Vor den Erfolg haben die Götter den Schweiß gesetzt

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

12V Akku bauen