double in bytes konvertieren/wiedergeben

Gast #3399886
Lesenswert?

Guten Morgen,
im Arduino bestimme ich die Zykluszeit und erhalte einen Wert in einer 
float-Variablen (32 bit). Diese Variable möchte ich nun über den CAN-Bus 
versenden, und muss dazu die Variable in 4 bytes aufteilen. Ich denke, 
dass das mit bitshift oder dem &-Operator (UND mit 0xff) geht. Liege ich 
da richtig, oder wie macht man sowas?
Grüße!
Gast #3399933
Lesenswert?

Ich würde es die Zeit je nach Genauigkeit mit 10, 100 oder 1000 
multiplizieren und dann in ein uint16 casten. Dafür muss der Faktor für 
die Genauigkeit in den anderen Geräten bekannt sein, wenn diese damit 
was anfangen wollen.

Beispiel: Die Zeit beträgt 3,452 Sekunden, multiplizier mit 100 ergibt 
345,2 und mit einem Cast kommst du dann auf 345.

So mache ich das überall, da ich mit einem µC ungern mit Float/Double 
rechne.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren