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

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

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

Сообщение Duhas » 10 ноя 2009, 22:29

подключить пин VCC к питанию ) и GND все к земле..
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

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

Сообщение Master » 11 ноя 2009, 11:03

И дорожки руками лучше не трогать во время работы девайса, а то долбанешь статикой.
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

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

Сообщение milkpower » 11 ноя 2009, 14:45

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

желательно бы конечно на асме, но и С хорошо будет, если с коментариями, пожалуйста :oops:
Аватара пользователя
milkpower
 
Сообщения: 217
Зарегистрирован: 25 мар 2009, 13:57
Откуда: Ростов-на-Дону
ФИО: Виктор

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

Сообщение =DeaD= » 11 ноя 2009, 14:52

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

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


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


Добавлено спустя 4 минуты 17 секунд:
Только это от дребезга контактов не лечит :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

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

Сообщение avr123.nm.ru » 11 ноя 2009, 14:56

milkpower писал(а): что-то мой алгоритм не работает. :( :oops:
Можно его увидеть ?
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

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
Аватара пользователя
milkpower
 
Сообщения: 217
Зарегистрирован: 25 мар 2009, 13:57
Откуда: Ростов-на-Дону
ФИО: Виктор

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

Сообщение galex1981 » 11 ноя 2009, 16:26

Тебе нужно задержку ввести после определения нажатой клавиши, чтобы исключить дребезг контактов
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

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;
}
Аватара пользователя
executer
 
Сообщения: 784
Зарегистрирован: 30 янв 2009, 01:24
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел

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

Сообщение ALHIMIK » 11 ноя 2009, 20:41

Гхм...
не ужели я один вижу вот это - см рис
не обявленная
не нужная
переменная
Вложения
123.JPG
РИС
123.JPG (11.46 КиБ) Просмотров: 1260
Аватара пользователя
ALHIMIK
 
Сообщения: 997
Зарегистрирован: 05 окт 2008, 14:41
Откуда: СПб
прог. языки: C,Python

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

Сообщение galex1981 » 11 ноя 2009, 22:39

Эта переменная скорее всего объявлена глобально
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

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);

}
}
Аватара пользователя
hadok
 
Сообщения: 166
Зарегистрирован: 06 июн 2005, 02:27
Откуда: Минск, Лида

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

Сообщение ALHIMIK » 11 ноя 2009, 23:12

а зачем она ? :crazy:
Аватара пользователя
ALHIMIK
 
Сообщения: 997
Зарегистрирован: 05 окт 2008, 14:41
Откуда: СПб
прог. языки: C,Python

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

Сообщение Duhas » 11 ноя 2009, 23:15

_delay_ms(d); :crazy:
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

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

Сообщение ALHIMIK » 11 ноя 2009, 23:17

пардон :sorry:
пора спать
Аватара пользователя
ALHIMIK
 
Сообщения: 997
Зарегистрирован: 05 окт 2008, 14:41
Откуда: СПб
прог. языки: C,Python

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

Сообщение milkpower » 13 ноя 2009, 20:27

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

078.jpg
Аватара пользователя
milkpower
 
Сообщения: 217
Зарегистрирован: 25 мар 2009, 13:57
Откуда: Ростов-на-Дону
ФИО: Виктор

Пред.След.

Вернуться в Микроконтроллеры

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

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