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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.