Gast
#365286
wie bekomme ich das hin dass ich über die udr schnittstelle auch gleitkommazahlen senden kann?
|
Anzeige
|
UART
Gast
#365286
wie bekomme ich das hin dass ich über die udr schnittstelle auch gleitkommazahlen senden kann? 2 Möglichkeiten
* Einfach die Bytes so wie sie sind verschicken.
Dazu ist eine union oft hilfreich
union Convert
{
float Number;
unsigned char Bytes[ sizeof float ];
};
void UART_Send_Float( float Number )
{
union Convert tmp;
unsigned char i;
tmp.Number = Number;
for( i = 0; i < sizeof( float ); ++i )
UART_Send_Byte( tmp.Bytes[i] );
}
Auf der Empfangsseite hast du dann das exakte Gegenstück:
Entsprechend viele Bytes empfangen, in ein Array in einer
union stecken und die Zahl aus der union abholen
* Verschick die Zahl in ihrer Textform. Dafür sind die Funktion
sprintf, _ftoa, sscanf, atof hilfreich.
Gast
#365288
Möglichkeit 2 ist wesentlich sicherer da du dich nicht um LSB/MSB kümmern musst. d.h. es funktioniert immer. Antwort schreiben |
Anzeige
|