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

 
 
> Дребезг контактов, Как избежать?
Labinskiy Nikola...
сообщение Jul 9 2006, 18:55
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 27
Регистрация: 5-07-06
Из: Украина, Донецк
Пользователь №: 18 606



Кнопка замыкает ножку на землю.
Mega16
Код
#include <avr/io.h>
#include <avr/interrupt.h>

#define F_CPU 8000000UL  // 8 MHz
#include <util/delay.h>

ISR(INT2_vect)
{
  int i;
  for (i=0;i<3;i++)
    _delay_ms(10);
  if ((PINB & 0x04)==0) // ножка внешнего прерывания
      PORTA ^= 1;
}

int main()
{
  PORTA = 0;
  DDRA = 0xFF;

  PORTB = 0xFF;
  DDRB = 0x00;
  
  MCUCSR &= ~_BV(ISC2);  // по заднему фронту (H->L)
  GICR = _BV (INT2);
  sei ();

  for(;;)
  return(0);
}


Идея вроде бы правильная, но на практике срабатывает плоховато...
В чем ошибка?

Сообщение отредактировал Labinskiy Nikolay - Jul 9 2006, 18:59


--------------------
If you can't make it good - don't make it look good ;)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
TamTam
сообщение Jul 9 2006, 22:50
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 293
Регистрация: 14-03-06
Пользователь №: 15 254



[quote name='Stas633' date='Jul 10 2006, 02:32' post='132459']
[quote name='rezident' post='132434' date='Jul 9 2006, 23:25']

Каким алгоритмом пользуются производители автомагнитол?

Спасибо.

Для справки: Весовые резисторы подобраны всегда так, что диапазон напряжения делителя делится поровну, по числу кнопок.

С уважением.
[/quote]

Судя по схеме подключения они используют 1 канал АЦП, а резюки подобраны так для того чтоб можно было определить нажатие 2-х кнопок сразу, а не спутать его с нажатием другой кнопки
Go to the top of the page
 
+Quote Post
Velund
сообщение Jul 9 2006, 23:59
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 19-11-04
Пользователь №: 1 177



С весовыми резисторами имеет смысл связываться только тогда, когда есть уверенность в долговременной надежности самих кнопок и не будет конденсации влаги никогда. Иначе получится как у доблестной фирмы Моторола в радиостанциях CP-50 - при активном использовании максимум год и надо менять "резинку" клавиш с проводящими пятачками, предварительно отмыв до блеска пленочную плату что под ней на держатель наклеена. Иначе "нажимается" все что угодно, кроме того что надо, часто само по себе.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Labinskiy Nikolay   Дребезг контактов   Jul 9 2006, 18:55
- - Yura_K   Код int i; for (i=0;i<3;i++) _dela...   Jul 9 2006, 19:13
- - rezident   Есть два стандартных способа опроса клавиатуры с у...   Jul 9 2006, 19:25
|- - Stas633   Цитата(rezident @ Jul 9 2006, 23:25) Есть...   Jul 9 2006, 22:32
|- - Stas633   Цитата(Velund @ Jul 10 2006, 03:59) С вес...   Jul 10 2006, 07:45
|- - Kovrov   Цитата(Stas633 @ Jul 10 2006, 11:45) Мне ...   Jul 10 2006, 08:46
|- - defunct   Цитата(Stas633 @ Jul 10 2006, 09:45) Инте...   Feb 11 2010, 23:02
- - upc2   Можно с использованием флагов.В прерывании устанав...   Jul 10 2006, 04:32
- - Kovrov   Такой вариант обхода дребезга - пользуюсь когда мн...   Jul 10 2006, 06:17
- - rezident   При использовании ADC и "аналоговой" кла...   Jul 10 2006, 09:27
|- - Stas633   Цитата(rezident @ Jul 10 2006, 13:27) При...   Jul 10 2006, 10:40
- - Kovrov   по профилю работы часто приходится общаться с проф...   Jul 10 2006, 11:36
|- - Stas633   Цитата(Kovrov @ Jul 10 2006, 15:36) .... ...   Jul 10 2006, 11:52
- - BVU   Программных алгоритмов антидребезга может быть дос...   Jul 10 2006, 13:01
- - fantasy   Внесу свою реплику в дискуссию... Код#define _fDr...   Jul 10 2006, 15:19
- - Labinskiy Nikolay   Всем спасибо за ответы - пойду экспериментировтаь   Jul 10 2006, 16:36
- - dio   Понимаю что вопрос тупой, но всё таки ... Упростил...   Jul 19 2006, 17:58
- - smk   Как выяснилось в моем случае, полезно обеспечивать...   Feb 10 2010, 17:48
|- - Marian   Цитата(smk @ Feb 10 2010, 19:48) Как выяс...   Feb 11 2010, 13:49
|- - rezident   Цитата(smk @ Feb 10 2010, 22:48) Иначе ск...   Feb 11 2010, 15:53
- - Oleg_IT   Как-то уже приводил здесь этот код. Кодunsigned l...   Feb 11 2010, 09:23
- - Lexdaw   А я по опросу входа (кнопки) сдвигаю регистр влево...   Feb 11 2010, 13:24
|- - Corvus   А простой инкремент/декремент чем не угодил?   Feb 11 2010, 13:47
|- - ReAl   Цитата(Corvus @ Feb 11 2010, 15:47) А про...   Feb 12 2010, 05:56
|- - Corvus   Цитата(ReAl @ Feb 12 2010, 08:56) Если Вы...   Feb 12 2010, 09:09
- - smk   Нет, просто события внутри микроконтроллера опереж...   Feb 11 2010, 17:08
|- - sonycman   Цитата(smk @ Feb 11 2010, 21:08) Нет, про...   Feb 11 2010, 17:17
|- - rezident   Цитата(smk @ Feb 11 2010, 22:08) Нет, про...   Feb 11 2010, 17:25
- - Oleg_IT   Товарищ смешивает две задачи, устранения дребезга ...   Feb 11 2010, 19:27
|- - rezident   Цитата(Oleg_IT @ Feb 12 2010, 00:27) Това...   Feb 11 2010, 21:31
- - smk   Цитатая лично на точно таких же принципах о чем то...   Feb 12 2010, 06:58
|- - muravei   Цитата(smk @ Feb 12 2010, 09:58) в следст...   Feb 12 2010, 08:18
|- - rezident   Цитата(smk @ Feb 12 2010, 11:58) Действие...   Feb 12 2010, 14:26
- - smk   КодЧтобы так сильно не рисковать стоит проверять ...   Feb 12 2010, 09:30
- - andr_doy   давно и с большим успехом пользую следущий код //....   Feb 12 2010, 09:50
- - sonycman   Цитата(ReAl @ Feb 12 2010, 09:56) Да ещё ...   Feb 12 2010, 13:42


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th June 2025 - 23:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.03448 секунд с 7
ELECTRONIX ©2004-2016