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

 
Текущее время: 27 апр 2024, 09:25

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



Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЁН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Анти-спам
Анти-спам:
Выполните задание
   

Обзор темы - помогите написать код на с
Автор Сообщение
  Заголовок сообщения:  Re: помогите написать код на с  
Цитата
Вот маленькая функция управления 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комные сопротивления на порты вывода семисегментника.
Сообщение Добавлено: 16 май 2012, 03:47
  Заголовок сообщения:  Re: помогите написать код на с  
Цитата
Сообщение Добавлено: 15 май 2012, 22:25
  Заголовок сообщения:  Re: помогите написать код на с  
Цитата
Сообщение Добавлено: 15 май 2012, 21:55
  Заголовок сообщения:  Re: помогите написать код на с  
Цитата


Вложения:
Снимок.PNG
Снимок.PNG [ 52.15 КБ | Просмотров: 14358 ]
Сообщение Добавлено: 15 май 2012, 21:40
  Заголовок сообщения:  Re: помогите написать код на с  
Цитата
Сообщение Добавлено: 15 май 2012, 19:59
  Заголовок сообщения:  Re: помогите написать код на с  
Цитата
Сообщение Добавлено: 15 май 2012, 19:54
  Заголовок сообщения:  Re: помогите написать код на с  
Цитата
#define F_CPU 4000000

#define BUTTON_PORT PIND
#define BUTTON_1 PIND0
#define BUTTON_2 PIND1
#define BUTTON_3 PIND2
#define BUTTON_4 PIND3

#define wait _delay_ms(150)

#include <util/delay.h>
#include <avr/io.h>

void port_init(void)
{
DDRB=0xff;
PORTB=0x00;

DDRD=0xf0;
PORTD=0x0f;
}

void button1_pressed(void)
{

wait;
}

void button2_pressed(void)
{

wait;
}

void button3_pressed(void)
{

wait;
}

void button4_pressed(void)
{

wait;
}



int main(void)
{
port_init();

while (1)
{
if(!(BUTTON_PORT&_BV(BUTTON_1))) button1_pressed();
if(!(BUTTON_PORT&_BV(BUTTON_2))) button2_pressed();
if(!(BUTTON_PORT&_BV(BUTTON_3))) button3_pressed();
if(!(BUTTON_PORT&_BV(BUTTON_4))) button4_pressed();
}

}


Только у тебя он незаработает :smile: :smile: :smile: :smile: :smile: :smile: :smile: :smile: :smile: :smile: :smile: :smile: :smile: :smile: :smile: :smile: :smile: :smile: :smile: :smile: :smile: :smile: :smile: :smile: :smile: :smile: :smile:
Сообщение Добавлено: 12 май 2012, 22:46
  Заголовок сообщения:  Re: помогите написать код на с  
Цитата
Вот здесь куча исходников с кнопками http://startcd.narod.ru/
Сообщение Добавлено: 12 май 2012, 22:20
  Заголовок сообщения:  Re: помогите написать код на с  
Цитата
Похоже студент. Решил по быстренькому зачёт сдать. :D
Сообщение Добавлено: 11 май 2012, 20:07
  Заголовок сообщения:  Re: помогите написать код на с  
Цитата
Блин прикольная просьба. :D
Сообщение Добавлено: 11 май 2012, 18:17

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


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