реклама на сайте
подробности

 
 
> формат хранения данных в KEIL C51, нафига данные задом наперед :)
nik_al
сообщение Oct 2 2006, 18:23
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 23-07-04
Пользователь №: 358



Как вещь мне в кейле не нравится(может быть единственная) этот самый формат. Приходит ко мне пакет где данные лежат INTEL формате т.е. 1й байт младший и читаю я из этого пакета в переменную типа ulong вот таки некрасивым способом:

ULONG(ltemp).b[3]=rxbuf[0];
ULONG(ltemp).b[2]=rxbuf[1];
ULONG(ltemp).b[1]=rxbuf[2];
ULONG(ltemp).b[0]=rxbuf[3];

макрос:
//-----------------------------------------------------
// Type for treating 4 byte variables with byte by byte
//-----------------------------------------------------
typedef union _un_long {
unsigned long dw;
unsigned char b[4];
}un_long;

#define ULONG(x) (*((un_long*)&x))
У кого есть другие способы решения этой проблемы поделитесь пожлста
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Andy Great
сообщение Nov 28 2006, 21:36
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 793
Регистрация: 5-11-04
Из: Краматорск, Украина
Пользователь №: 1 057



Сдвиги на 0,8,16,24 компилятор должен прооптимизировать в присваивания.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 01:17
Рейтинг@Mail.ru


Страница сгенерированна за 0.01349 секунд с 7
ELECTRONIX ©2004-2016