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

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

Практически ничем(+)

Отправлено Quasy 18 июля 2008 г. 16:40
В ответ на: Чем в С заменили low( ) и high( ) ? отправлено whale 18 июля 2008 г. 16:34


// Bytes manipulations
#define LOW(U16) ((U8)U16)
#define HIGH(U16) ((U8)(U16 >> 8))

// Или например многобайтные с индейцами:
// 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 изображения: 

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

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

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