Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Индейцы(+)

Отправлено Quasy 19 ноября 2007 г. 16:04
В ответ на: Ответ:продолжение темы, но с лонгом отправлено <font color=gray>_alex_</font> 19 ноября 2007 г. 15:43


//////////////////////
#define LITTLE_ENDIAN
//////////////////////
// U16/U32 endian handlers
#ifdef LITTLE_ENDIAN
// => 16bit: (LSB,MSB), 32bit: (LSW,MSW) or (LSB0,LSB1,LSB2,LSB3) or
//(MSB3,MSB2,MSB1,MSB0)
#define MSB(u16) (((U8* )&u16)[1])
#define LSB(u16) (((U8* )&u16)[0])
#define MSW(u32) (((U16*)&u32)[1])
#define LSW(u32) (((U16*)&u32)[0])
#define MSB0(u32) (((U8* )&u32)[3])
#define MSB1(u32) (((U8* )&u32)[2])
#define MSB2(u32) (((U8* )&u32)[1])
#define MSB3(u32) (((U8* )&u32)[0])
#define LSB0(u32) MSB3(u32)
#define LSB1(u32) MSB2(u32)
#define LSB2(u32) MSB1(u32)
#define LSB3(u32) MSB0(u32)
#else
// BIG_ENDIAN => 16bit: (MSB,LSB), 32bit: (MSW,LSW) or
//(LSB3,LSB2,LSB1,LSB0) or (MSB0,MSB1,MSB2,MSB3)
#define MSB(u16) (((U8* )&u16)[0])
#define LSB(u16) (((U8* )&u16)[1])
#define MSW(u32) (((U16*)&u32)[0])
#define LSW(u32) (((U16*)&u32)[1])
#define MSB0(u32) (((U8* )&u32)[0])
#define MSB1(u32) (((U8* )&u32)[1])
#define MSB2(u32) (((U8* )&u32)[2])
#define MSB3(u32) (((U8* )&u32)[3])
#define LSB0(u32) MSB3(u32)
#define LSB1(u32) MSB2(u32)
#define LSB2(u32) MSB1(u32)
#define LSB3(u32) MSB0(u32)
#endif



Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 47:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru