[an error occurred while processing this directive] [an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Alexey L 26 декабря 2001 г. 12:50
В ответ на: Вопрос по битовым операциям в С для АVR отправлено С_чайник 26 декабря 2001 г. 12:23

Битовые операции на Си:
Биты заменяются через '# define', принимая значения от 0 до 7, например:
#define PC_J2 0 // Вход 'Z': Джампер-2
#define PC_J3 1 // Вход 'Z': Джампер-3
#define PC_J4 2 // Вход 'Z': Джампер-4
#define PC_J5 3 // Вход 'Z': Джампер-5
#define PC_J6 4 // Вход 'Z': Джампер-6
#define PC_J7 5 // Вход 'Z': Джампер-7
#define PC_J8 6 // Вход '1': Джампер-8
#define PC_J9 7 // Вход '1': Джампер-9

Операции с битами:

Reg |= (1 << Bit) // Установить бит
Reg &= ~(1 << Bit) // Сбросить бит
b_RG_KNP &= ~( (1<
Инверсия бит, варианты:
bit=!bit или bit=~bit
bit^=1 или bit = bit ^ 1;

Проверка бит:
if( Reg & (1 << Bit) ) // Проверить бит
if( Reg & (~(1 << Bit)) ) // Проверить с маской на бит
if( Reg & (~( (1 << Bit1) + (1 << Bit2) ) ) ) // Проверить с маской на несколько бит


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

Ответы



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

E-mail: info@telesys.ru