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

 
Текущее время: 30 май 2025, 20:30

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



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

Размер шрифта:
Цвет шрифта
#000000 #000040 #000080 #0000BF #0000FF
#004000 #004040 #004080 #0040BF #0040FF
#008000 #008040 #008080 #0080BF #0080FF
#00BF00 #00BF40 #00BF80 #00BFBF #00BFFF
#00FF00 #00FF40 #00FF80 #00FFBF #00FFFF
#400000 #400040 #400080 #4000BF #4000FF
#404000 #404040 #404080 #4040BF #4040FF
#408000 #408040 #408080 #4080BF #4080FF
#40BF00 #40BF40 #40BF80 #40BFBF #40BFFF
#40FF00 #40FF40 #40FF80 #40FFBF #40FFFF
#800000 #800040 #800080 #8000BF #8000FF
#804000 #804040 #804080 #8040BF #8040FF
#808000 #808040 #808080 #8080BF #8080FF
#80BF00 #80BF40 #80BF80 #80BFBF #80BFFF
#80FF00 #80FF40 #80FF80 #80FFBF #80FFFF
#BF0000 #BF0040 #BF0080 #BF00BF #BF00FF
#BF4000 #BF4040 #BF4080 #BF40BF #BF40FF
#BF8000 #BF8040 #BF8080 #BF80BF #BF80FF
#BFBF00 #BFBF40 #BFBF80 #BFBFBF #BFBFFF
#BFFF00 #BFFF40 #BFFF80 #BFFFBF #BFFFFF
#FF0000 #FF0040 #FF0080 #FF00BF #FF00FF
#FF4000 #FF4040 #FF4080 #FF40BF #FF40FF
#FF8000 #FF8040 #FF8080 #FF80BF #FF80FF
#FFBF00 #FFBF40 #FFBF80 #FFBFBF #FFBFFF
#FFFF00 #FFFF40 #FFFF80 #FFFFBF #FFFFFF
Настройки:
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 КБ | Просмотров: 20291 ]
Сообщение Добавлено: 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 часа [ Летнее время ]


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