Перейти к блогу GetChip.net - блог        JilTE[1] - в разработке     Модификации устройств - модификации

 
Текущее время: 29 мар 2024, 19:32

Часовой пояс: UTC + 3 часа [ Летнее время ]



Начать новую тему Ответить на тему  [ Сообщений: 11 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: помогите написать код на с
СообщениеДобавлено: 16 май 2012, 03:47 
Вот маленькая функция управления 4 кнопками а если раскоментировать , то и 16кнопками
#define F_ (key==12)
#define SET_ (key==8)
#define PLUS (key==0)
#define MINUS (key==4)
#define PORTLCD PORTD
#define DDRLCD DDRD
#define PINLCD PIND

#define str0 (PINLCD&BIT(2))
#define str4 (PINLCD&BIT(3))
#define str8 (PINLCD&BIT(4))
#define str12 (PINLCD&BIT(5))
//#define stolb1 (PINLCD&BIT(4))
//#define stolb2 (PINLCD&BIT(5))
//#define stolb3 (PINLCD&BIT(6))
//#define stolb4 (PINLCD&BIT(7))

void skankey (void){
unsigned char key_lokal=17;

key=key_lokal;

#ifdef katod
PORTZN |= BITZN;
#else
PORTZN &= ~BITZN;
#endif
DDRLCD =0xC3;
PORTLCD=0x3C;
_delay_us(10);

if (!str0) key_lokal=0;
else if (!str4) key_lokal=4;
else if (!str8) key_lokal=8;
else if (!str12) key_lokal=12;
else key_lokal=17;//goto vool;

if ( key_lokal!=17 )
{
if (++anti_drebezg[0]==35)//35)
{
key=key_lokal;
if ( ( ocr1[ocr1ahi_but] )||( ocr1[ocr1alow_but] ) ){
OCR1AH = ocr1[ocr1ahi_but];//0x04;
OCR1AL = ocr1[ocr1alow_but];//0x00;
shim_true();//
time_flag|=_BV(fl_sig_butt);
time[note_but]=7;
}
}
if (anti_drebezg[0]==anti_drebezg[2]){ //anti_drebezg[0] сам антидребезг
anti_drebezg[0]=0; //anti_drebezg[1] кол-во цифр перед убыстрением
anti_drebezg[1]++; //anti_drebezg[2] задержка после опред цифры
if (anti_drebezg[1]==3) anti_drebezg[2]=45;//55;
}
time_in_regim=25;
}
else
{
anti_drebezg[0]=0;
anti_drebezg[1]=0;
anti_drebezg[2]=200;
}
#ifdef katod
PORTLCD=0x00;
#else
PORTLCD=0xFF;
#endif
DDRLCD =0xFF;
}
А дальше в мэйне вызываем эту функцию.
Кнопки подключены через 3комные сопротивления на порты вывода семисегментника.


Вернуться к началу
  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB