Спасибо, работает.
Код
#define BUFFER_SIZE 255 // buffer for receving/sending messages
unsigned char RxBuf [BUFFER_SIZE]; //
union {unsigned long isLong;
unsigned char isCharArr[4];
} freeMemSD;
char buffe[11];
// RxBuf[11] ... RxBuf[14] - получаем заранее со всеми 255 байтами
RxBuf[11] = 0x01; // Highest
RxBuf[12] = 0x01; // Higher
RxBuf[13] = 0x01; // Hi
RxBuf[14] = 0x01; // Lo
freeMemSD.isCharArr[3] = RxBuf[11];
freeMemSD.isCharArr[2] = RxBuf[12];
freeMemSD.isCharArr[1] = RxBuf[13];
freeMemSD.isCharArr[0] = RxBuf[14];
ultoa(freeMemSD.isLong, buffe, 10);
LCD_WriteText (16,buffe); // выводит символы на экран
[/quote]
Получается
Код
freeMemSD.isCharArr[3] = RxBuf[11];
freeMemSD.isCharArr[2] = RxBuf[12];
freeMemSD.isCharArr[1] = RxBuf[13];
freeMemSD.isCharArr[0] = RxBuf[14];
ultoa(freeMemSD.isLong, buffe, 10);
Вместо
Код
rr = ((unsigned char)RxBuf[11]<<8) | RxBuf[12]; // Hi
xx = ((unsigned char)RxBuf[13]<<8) | RxBuf[14]; // Lo
freeMemSD = rr; //
freeMemSD = (freeMemSD <<16)| xx; //
ultoa (freeMemSD,buffe,10); // long в char
А может можно RxBuf[11] ... RxBuf[14] сразу в buffe ?
Сообщение отредактировал Who_are_you? - Jun 22 2018, 07:51