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
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.
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.
STK500-Besitzer schrieb: > Indem du als Zahlenbereich einen nimmst, der auch negative Zahlen > darstellen kann. Nicht umsonst gibt "signed" und " un signed" Integer. das geht leider nicht. Der empfangenen Daten müssen aus uint8_t array bestehen, daher geht das nicht
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
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.
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.