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

 
 
> формат хранения данных в 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
Ответов
savikon
сообщение Nov 28 2006, 17:58
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 16
Регистрация: 14-11-05
Из: Санкт-Петербург
Пользователь №: 10 812



я поступал еще некрасивее:
unsigned long lOutWord _at_ 0x20;
unsigned char cOutWord0 _at_ 0x23;
unsigned char cOutWord1 _at_ 0x22;
unsigned char cOutWord2 _at_ 0x21;
unsigned char cOutWord3 _at_ 0x20;
и получал от кейла четыре ругательства<img>
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 00:10
Рейтинг@Mail.ru


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