Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Народ обясните человеку vbits.h Волкова с нормальным коментарием
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
sKWO
Хочу разобраться.
Применить знаю где а вот идею пой маймать немогу.
Файл прикрепляю......
jorikdima
Разберитесь с побитовыми операциями и все станет ясно. А так же с макросами с параметром. Это любая книга по С. И это будет лучше и эффективнее, чем кому то стучать пальцами по клаве в попытках объяснения.
sKWO
Цитата(jorikdima @ Apr 19 2007, 21:28) *
Разберитесь с побитовыми операциями и все станет ясно. А так же с макросами с параметром. Это любая книга по С. И это будет лучше и эффективнее, чем кому то стучать пальцами по клаве в попытках объяснения.

Помог Сергей Борщ
как создать удобные макросоы, для обеспечения доступа к отдельным словам и байтам переменных.
Эта тема обчсуждается раза по 2 в месяц, поэтому всем уже просто лень писать в десятый раз одно и то же.
Основных подходов три - через указатель, через юнион и сдвигами.
#define LOW(int) (unsigned char)(*((char*)&(int)+0)) //returns lowbyte
#define HIGH(int) (unsigned char)(*((char*)&(int)+1)) //returns highbyte
typedef unsigned char U8;

union tagDummyUnion
{
int i;
U8 b0;
U8 b1;
} DummyUnion;

DummyUnion MyVar;

MyVar.b0 = 80;
MyVar.b1 = 195;
printf("int value = %d\n", MyVar.i);uint16_t i = 0x1234;
uint8_t b0 = (i >> 0) & 0xFF;// low byte
uint8_t b1 = (i >> 8) & 0xFF; // high byte
i = ((uint16_t)b1 << 8) | b0;аналогично для более длинных типов.
defunct
Цитата(sKWO @ Apr 19 2007, 21:11) *
Основных подходов три - через указатель, через юнион и сдвигами.

То что вы видите в примере Volkov'a это есть четвертый способ - с помощью заранее подготовленных масок:

Код
00000001  11111110
00000010  11111101
00000100  11111011
00001000  11110111
00010000  11101111
00100000  11011111
01000000  10111111
10000000  01111111
Сергей Борщ
...И даже получили ответы не на свои вопросы... (с)Жванецкий.
или "Попал под лошадь" (с) Ильф и Петров
Цитата(sKWO @ Apr 19 2007, 21:11) *
как создать удобные макросоы, для обеспечения доступа к отдельным словам и байтам переменных.
Так а при чем здесь макросы имени Волокова и доступ к байтам? Макросы Волкова предназначены для доступа к битам. Чтобы понять, как они работают, надо прочитать о препроцессоретут или тут и вспомнить двоичную арифметику (И, ИЛИ, НЕ, Искл. ИЛИ).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.