32-bit Integer für CAN-Bus splitten auf 2x16-bit
Hallo,
Ich möchte für ein Projekt Soll-und Istwerte über CAN-Bus verschicken bzw. einlesen.
Die Umrichter von SEW können nur Prozessdatenworte verarbeiten, die 16-bit groß sind, d.h. ich muss die vorzeichenbehaftete Integer Zahl (32-bit) in high und low splitten (binär), dann verschicken.
Beim einlesen bekomme ich dann 2x16-bit, die ich wieder zu einem 32-bit Integer zusammenführen muss.
Ich habe bereits diverse array-funktionen etc. getestet, komme aber irgendwie nicht weiter.
Als Beispiel:
Ich habe den Sollwert 256
gewandelt in binär ergibt es 10000000
dieser wird in 2x16 bit gesplittet, im high stehen dann nur 0en, im low-teil die 10000000
diesen verschicke ich.
Und beim empfangen halt umgekehrt.
Ich wäre für Tips oder Hilfen sehr dankbar, das Problem ist ja eigentlich nicht so schwer, aber irgendwie hab ich ein Brett vorm Kopf.
Danke
|