не могу сообразить как написать макрос (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено блин 06 августа 2003 г. 16:07


#define SIGNAL_C1_MASK (BIN32(00000000,11000000,00000000,00000000))
#define SIGNAL_C2_MASK (BIN32(00000000,00110000,00000000,00000000))
#define SIGNAL_C3_MASK (BIN32(00000000,00001000,00000000,00000000))
#define SIGNAL_C3_MASK (BIN32(00000000,00000111,00000000,00000000))
#define SIGNAL_C4_MASK (BIN32(00000000,00000000,11100000,00000000))
#define SIGNAL_C5_MASK (BIN32(00000000,00000000,00011000,00000000))
#define SIGNAL_C6_MASK (BIN32(00000000,00000000,00000100,00000000))
#define SIGNAL_C6_MASK (BIN32(00000000,00000000,00000011,00000000))
#define SIGNAL_C7_MASK (BIN32(00000000,00000000,00000000,11111111))

нужно подсчитать сколько раз надо сдвинуть эти xxMASK вправо чтобы
самая левая 1 стала вначале справа

можно так

#define SIGNAL_C1_SHIFT 22
#define SIGNAL_C2_SHIFT 20
.....
#define SIGNAL_C7_SHIFT 0

но так ломает, каждый раз считать сдиги у 32 бита для глаз тяжело
да и маски другие могут быть. Хочется чтобы автоматом считал. Я только
меняю MASK а он автоматические высчитывает число сдвигов.


Так как энтот макрос реализовать покрасивше?

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru