[an error occurred while processing this directive]
Поясню
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
По срезу на пине я должен бит запихать в переменную. Причем идет сначала старший. На си я делаю так:
if(WIEGAND_HIGH == 0)
{
wiegand.key[wiegand.counter/8] |= (1 << (wiegand.counter%8));
}
else
{
wiegand.key[wiegand.counter/8] &= ~(1 << (wiegand.counter%8));
}
Как видим биты автоматом группируются байты. Одно плохо - в данном виде они ложаться начиная с младшего.
По другому спрошу - может знаете как преобразовать выражение типа
wiegand.key[wiegand.counter/8] |= (1 << (wiegand.counter%8)), чтоб биты ложилсь сначала в старшую часть?
Составить ответ
|||
Конференция
|||
Архив
Ответы
- А у меня считыватель передаёт биты, начиная со старшего. У Вас что, считыватель самодельный? — XPA (25.10.2006 12:41 217.151.131.12, пустое)
- например так — koyodza (23.10.2006 15:07 83.170.240.226, 63 байт)
- Спасибо! Фантастика, работает. — 1111 (23.10.2006 15:09 217.21.55.5, пустое)
- Ответ: — koyodza (23.10.2006 15:09 83.170.240.226, 61 байт)
- А что так — 1111 (23.10.2006 15:14 217.21.55.5, 293 байт)
- Ответ: — koyodza (23.10.2006 15:27 83.170.240.226, 242 байт)
- Ответ: — 1111 (23.10.2006 15:33 217.21.55.5, 18 байт)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание