Lies mal da, vielleicht hilft das:
https://www.roboternetz.de/wissen/in...cherstrukturen
Hallo,
die Speicherstellen des CAN, in diesem Fall des MCP2515, werden als Byte deklariert
Ich kann damit jeden Wert zwischen 0 und 256 übertragen.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
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
Lies mal da, vielleicht hilft das:
https://www.roboternetz.de/wissen/in...cherstrukturen
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
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?
Dann musst du die Daten wohl auf mehrere Bytes verteilen...
offenbar komme ich da nicht herum![]()
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
dein oder verstehe ich nicht.
Ich kann doch keinen Stringwert übertragen, oder?
wie kann ich den Wert -15,3 zerlegen?
wieso nicht? jedes Zeichen ist ein Byte Stichwort ASCII![]()
Vor den Erfolg haben die Götter den Schweiß gesetzt
ja schon, aber wie trenne ich die einzelenen Bytes voneinander?
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
Lesezeichen