реклама на сайте
подробности

 
 
> Макроопределение, Работа макроопределения
Nixon83
сообщение Oct 19 2011, 07:52
Сообщение #1





Группа: Участник
Сообщений: 10
Регистрация: 23-05-11
Пользователь №: 65 204



Доброго времени суток помогите разобраться в коде, если не трудно объясните пожалуйста в двоичном коде!!!
CODE
//порт, к которому подключены кнопки
#define PORT_BUTTON PORTA
#define PIN_BUTTON PINA
#define DDRX_BUTTON DDRA

//номера выводов, к которым подключены кнопки
#define DOWN 4
#define UP 5
#define ENTER 6

#define MASK_BUTTONS ((1<<DOWN)|(1<<UP)|(1<<ENTER)) // обясните это выражение в двоичном коде
#define BitIsClear(reg, bit) ((reg & (1<<(bit))) == 0) // обясните это выражение в двоичном коде


//volatile unsigned char pressedKey = 0;
unsigned char comp = 0;

//_______________________________________
void BUT_Init(void) // что мы получаем здесь? Если можно тоже в двоичном коде???
{
DDRX_BUTTON &= ~(MASK_BUTTONS);
PORT_BUTTON |= MASK_BUTTONS;
}

//_______________________________________
//#pragma inline = forced
void BUT_Debrief(void)
{
unsigned char key = 0;

//последовательный опрос выводов мк
if (BitIsClear(PIN_BUTTON, UP))
key = KEY_UP;
else if (BitIsClear(PIN_BUTTON, DOWN))
key = KEY_DOWN;
else if (BitIsClear(PIN_BUTTON, ENTER))
key = KEY_ENTER;
else {
key = KEY_NULL;
}


Сообщение отредактировал IgorKossak - Oct 19 2011, 08:19
Причина редактирования: [codebox], грамматика
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 04:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01338 секунд с 7
ELECTRONIX ©2004-2016