roboforum.ru

Технический форум по робототехнике.

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

Re: проблема с реакцией на нажатие кнопок

Duhas » 10 ноя 2009, 22:29

подключить пин VCC к питанию ) и GND все к земле..

Re: проблема с реакцией на нажатие кнопок

Master » 11 ноя 2009, 11:03

И дорожки руками лучше не трогать во время работы девайса, а то долбанешь статикой.

Re: проблема с реакцией на нажатие кнопок

milkpower » 11 ноя 2009, 14:45

чтобы новые темы не плодить, спрошу здесь.
кто знает небольшой алгоритм для кнопок, чтоб если кнопка все еще нажата, то эта кнопка игнорировалась бы, чтобы исключить автоповтор.
а-то что-то мой алгоритм не работает. :(

желательно бы конечно на асме, но и С хорошо будет, если с коментариями, пожалуйста :oops:

Re: проблема с реакцией на нажатие кнопок

=DeaD= » 11 ноя 2009, 14:52

А в чем проблема???

Инициализация:
Код: Выделить всёРазвернуть
Перем СтатусКнопки=0;


Тело цикла:
Код: Выделить всёРазвернуть
КнопкаНажатаСейчас=ПолучитьИзПорта();
ТолькоЧтоНажали=0;
Если СтатусКнопки=0 Тогда ТолькоЧтоНажали=КнопкаНажатаСейчас
СтатусКнопки=КнопкаНажатаСейчас


Добавлено спустя 4 минуты 17 секунд:
Только это от дребезга контактов не лечит :)

Re: проблема с реакцией на нажатие кнопок

avr123.nm.ru » 11 ноя 2009, 14:56

milkpower писал(а): что-то мой алгоритм не работает. :( :oops:
Можно его увидеть ?

Re: проблема с реакцией на нажатие кнопок

milkpower » 11 ноя 2009, 15:25

2avr123

avr123.nm.ru писал(а):Можно его увидеть ?


легко, может и проблему свежим взглядом увидите :)
Код: Выделить всёРазвернуть
key_prs:  
;обработчик кнопок (return возвращаемый результат, либо 0 если кнопка еще нажата либо, ничего не нажато)
;butpres старое значение нажатых кнопок
   clr return   
   in temp,Pind
   mov temp1,temp
   and temp1,butpres
   breq key_ret
   mov butpres,temp
   mov return,temp
   ret
key_ret:
   mov butpres,temp
   ret

Re: проблема с реакцией на нажатие кнопок

galex1981 » 11 ноя 2009, 16:26

Тебе нужно задержку ввести после определения нажатой клавиши, чтобы исключить дребезг контактов

Re: проблема с реакцией на нажатие кнопок

executer » 11 ноя 2009, 20:02

В книжке читал способ лечения от дребезга (программный конденсатор типа):
Код: Выделить всёРазвернуть
int С=0;            // воображаемый кондер с зарядом 0-100%
short ButNoise=0; // это кнопка после шумодава
short Pressed=0; // кнопка была нажата в прдидущем скане
while(1)
{
  if(buton&&(C<100)) C++; else if(C>0) C--;
  if(C>90) ButNoise=1;
  if(C<10) ButNoise=0;

  if(ButNoise&&!Pressed) тут делаем чтото по начатию конпки
  if(!ButNoise&&Pressed) тут делаем чтото по отпусканию конпки

  Pressed = ButNoise;
}

Re: проблема с реакцией на нажатие кнопок

ALHIMIK » 11 ноя 2009, 20:41

Гхм...
не ужели я один вижу вот это - см рис
не обявленная
не нужная
переменная
Вложения
123.JPG
РИС
123.JPG (11.46 КиБ) Просмотров: 1441

Re: проблема с реакцией на нажатие кнопок

galex1981 » 11 ноя 2009, 22:39

Эта переменная скорее всего объявлена глобально

Re: проблема с реакцией на нажатие кнопок

hadok » 11 ноя 2009, 23:07

Вот весь код полностью:


#include <avr/io.h>
#include <util/delay.h>
#define F_CPU 8000000UL

float d;

int main(void) {
DDRD = 0xff;
DDRC = 0xff;
DDRA = 0x00;
DDRA = 0x00;
d=10;
PORTA=0xFF;
while (1) {
PORTC=~PINA;
_delay_ms(d);

}
}

Re: проблема с реакцией на нажатие кнопок

ALHIMIK » 11 ноя 2009, 23:12

а зачем она ? :crazy:

Re: проблема с реакцией на нажатие кнопок

Duhas » 11 ноя 2009, 23:15

_delay_ms(d); :crazy:

Re: проблема с реакцией на нажатие кнопок

ALHIMIK » 11 ноя 2009, 23:17

пардон :sorry:
пора спать

Re: проблема с реакцией на нажатие кнопок

milkpower » 13 ноя 2009, 20:27

победил дребезг контактов, но аппаратно :)
пришлось собрать небольшую платку на 4043 (4rs-тригера)

078.jpg


Rambler\'s Top100 Mail.ru counter