Делите флоат на 4 части и передаете, на приемной стороне точно также собираете без потери точности
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Гм 12 ноября 2004 г. 11:21
В ответ на: Преобразование float to float. отправлено KG 12 ноября 2004 г. 10:55


void Tx_Long(float data)
{
unsigned char *a, Temp;
a = (unsigned char*)&data;
Temp = *(a+3);
USART_Tx(Temp);
Temp = *(a+2);
USART_Tx(Temp);
Temp = *(a+1);
USART_Tx(Temp);
Temp = *(a+0);
USART_Tx(Temp);
}


float Rx_Long(char NumUART)
{
unsigned char *a, Temp;
float data;
a = (unsigned char*)&data;
switch (NumUART)
{
case 0:
Temp = USART_Rx_0();
*(a+3) = Temp;
Temp = USART_Rx_0();
*(a+2) = Temp;
Temp = USART_Rx_0();
*(a+1) = Temp;
Temp = USART_Rx_0();
*(a+0) = Temp;
break;

case 1:
Temp = USART_Rx_1();
*(a+3) = Temp;
Temp = USART_Rx_1();
*(a+2) = Temp;
Temp = USART_Rx_1();
*(a+1) = Temp;
Temp = USART_Rx_1();
*(a+0) = Temp;
break;
}
return data;
}

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru