[an error occurred while processing this directive]
вот без прерывания, с функцией антидребезга для одной кнопки [+] (Если надо для четверых то должны разобраться как сделать)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено MegaJohn 06 сентября 2006 г. 11:33
В ответ на: поробую разобраться в своих рукописаниях, если совсем плохо будет, буду публично обращаться отправлено Z 06 сентября 2006 г. 11:04


#define DIP1_IN_REG PINC
#define DIP2_IN_REG PINC
#define DIP3_IN_REG PINC
#define DIP4_IN_REG PINC

#define DIP1 PC0
#define DIP2 PC1
#define DIP3 PC2
#define DIP4 PC3

#define DIPx_PORT PORTC
#define DIPx_DIR DDRC

typedef unsigned char u8;

#include

//функция обработки кнопки №1
void press_btn1 (void)
{
}

void main (void)
{
u8 buf_key[4] = { 255, 255, 255, 255};

DIPx_DIR &= ~((1 < < DIP1) | (1 < < DIP2) | (1 < < DIP3) | (1 < < DIP4)); //На вход
DIPx_PORT |= (1 < < DIP1) | (1 < < DIP2) | (1 < < DIP3) | (1 < < DIP4); //Подтяжка к +5 для кнопок

while (1)
{
buf_key[0] < <= 1;
if (DIP1_IN_REG & (1 < < DIP1))
buf_key[0] |= 1; //Если кнопка не нажата
else
buf_key[0] &= ~1; //Если кнопка нажата

if (~buf_key[0]) press_btn1(); //Если байт = '0' значит кнопка нажата и дребезг прошёл, вызов функции обработки кнопки №1
}
}



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

Ответы


Отправка ответа
Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 
URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание