Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Внешнее прерывание
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
at90
Как работает режим any change у INT1.
У меня срабатывает только по одному вронту.
beer_warrior
Скорее всего второй фронт поступает быстрее, чем успевает отработать прерывание.
at90
я пробовал кнопку вещать.
нажимаю срабатывает
отпускаю не срабатывает
beer_warrior
А из процедуры прерывания выходит?
Вы б описали, весь эксперимент, и хард и софт.
era
Кстати, просто кнопка при нажатии, типа дребезжит, уж парочку замыканий-размыканий за 1 - 5 мс выдаст
IgorKossak
Цитата(era @ Apr 18 2006, 22:26) *
Кстати, просто кнопка при нажатии, типа дребезжит, уж парочку замыканий-размыканий за 1 - 5 мс выдаст

Это точно, даже при простом опросе с определённым таймаутом (в драйвере клавиатуры) этот дребезг заметен, а в прерываниях и подавно.
nss
Цитата
Кстати, просто кнопка при нажатии, типа дребезжит, уж парочку замыканий-размыканий за 1 - 5 мс выдаст

Простейший генератор на двух элементах И-НЕ. для теста срабатывания по фронтам хватит за глаза.
Old1
Цитата(nss @ Apr 24 2006, 14:47) *
Простейший генератор на двух элементах И-НЕ. для теста срабатывания по фронтам хватит за глаза.

Проще RS-триггер сделать для подавления дребезга контактов кнопки на двух элементах 2И-НЕ...
defunct
Цитата(Old1 @ Apr 24 2006, 22:11) *
Проще RS-триггер сделать для подавления дребезга контактов кнопки на двух элементах 2И-НЕ...


если сугубо для проверки, то проще соседний пин соединить с INTом и на нем сигнал в программе генерить ;>
Lem
Гораздо проще, вообще, вывод INT назначить на выход и на нём же из программы дёргать smile.gif

Код
DDRD |= (1 << INT0_PIN);
while(1)
{
   PORTD |= (1 << INT0_PIN);
   __delay_cycles(8000);            // Требуемое количество циклов задержки
   PORTD &= ~(1<<INT0_PIN);
  __delay_cycles(8000);            // Требуемое количество циклов задержки
}


прерывания будут срабатывать, не забудьте их разрешить и обработать
(например, можно светодиодом помигать для проверки срабатывания обоих прерываний)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.