Datenübertragung per SPI

Gast #5848062
Hallo zusammen,

ich möchte Daten von einem STM32 µC an den anderen per SPI übertragen. 
Nun kann ich leider nur uint_8 übertragen. Für float vlaue z.B. 43.54 
mache das Folgendes: 43.54 *100 =4354 und diesen Wert im 2.µC maskieren 
4354 & 0x00FF und 4354 & 0xFF00 und dann 8 bits shiften. Nun zu meiner 
Frage, wie kann ich -43.54 übertragen also negative value?

beste Grüße
Gast #5848064
Franz schrieb:
> Nun zu meiner
> Frage, wie kann ich -43.54 übertragen also negative value?

Indem du als Zahlenbereich einen nimmst, der auch negative Zahlen 
darstellen kann. Nicht umsonst gibt "signed" und " un signed" Integer.
Gast #5848084
Franz schrieb:
> Für float vlaue z.B. 43.54
> mache das Folgendes: 43.54 *100 =4354 und diesen Wert im 2.µC maskieren
> 4354 & 0x00FF und 4354 & 0xFF00 und dann 8 bits shiften.

Was du da beschreibst, ist nicht Float, sondern Festkomma. Bei Float 
hättest du noch einen Exponenten.
Gast #5848096
Helf mir bitte mal auf die Sprünge:
4354 sind bei mir aber 0x1102. Wie kommst Du denn jetzt bitteschön 
wieder auf 43.54 nach dem maskieren und einem 8bit shift?

Gruß
TK
Gast #5848100
Franz schrieb:
> das geht leider nicht. Der empfangenen Daten müssen aus uint8_t array
> bestehen, daher geht das nicht

Tja, dann kann ich dir zumindest nicht mehr helfen.
Son bißchen Cast-Geschubse ist für manche Leute schon zuviel.
Gast #5848107
Die Darstellung in beiden Maschinen (Source/Sink) hat mit der 
Übertragung nicht viel gemeinsam.

Was man aux X Bytes macht ist das eine, wie man sie transportiert ist 
etwas anderes.

Und jede reale Zahl (float, double, .. ) wird intern in mehreren bytes 
abgelegt.

siehe z.B. hier
https://de.wikipedia.org/wiki/IEEE_754


Kann der SPI doch egal sein wie man 4, 8 oder X bytes deutet.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.