Перейти к содержанию

Антидребезг При Внешнем Прерывании


mappy89

Рекомендуемые сообщения

Доброго времени суток.

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

if (GIFR & (1<<INTF0))
{_delay_ms(50);
 if (GIFR & (1<<INTF0))
  {_delay_ms(50);
   if (GIFR & (1<<INTF0))
выполняем действие }}

Приведите, пожалуйста, свои примеры кода для антидребезга от внешнего прерывания. Заранее спасибо

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Во

post-127757-0-80602400-1355207677_thumb.jpg

- А совесть в курсе? - А совесть в доле! :-D

Эксперт — это человек, который совершил все возможные ошибки в некотором узком поле.

Все грамматические ошибки являются авторским стилем изложения материала.

Ссылка на комментарий
Поделиться на другие сайты

Hongfa для различных применений в Компэл. Большой выбор в наличии!

Компания HONGFA - это не только крупнейший в мире производитель электромеханических реле, но также производитель конденсаторов, вакуумных прерывателей, трансформаторов и низковольтного коммутационного оборудования. На складе КОМПЭЛ регулярно поддерживаются около 100 самых популярных позиций электромеханических реле. Реле Hongfa могут заместить многие изделия производства недоступных брендов. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

if (GIFR & (1<<INTF0))
{_delay_ms(50);
 if (GIFR & (1<<INTF0))
  {_delay_ms(50);
    if (GIFR & (1<<INTF0))
выполняем действие }}

Чего-то непонятен смысл сего действа: флаг прерывания будет стоять пока не сбросится, а именно - либо по входу в прерывание, либо после ручной записи в него единицы. Если присутствует дребезг и флаг установится в обработчике снова, то можно его проверять до посинения - все равно он будет стоять. Лучшее решение - при выходе из обработчика сбрасываем флаг прерывания вручную. Если дребезг длится дольше обработчика то тут возможны варианты - например в обработчике запретить прерывания, потом в основном цикле через некоторое время сбросить флаг прерывания и разрешить прерывания снова.

Любой, заслуживающий внимания, опыт приобретается себе в убыток...

Ссылка на комментарий
Поделиться на другие сайты

Тренды и лучшие решения для разработки зарядных станций в России

К 2029 году в России прогнозируется увеличение числа зарядных станций до 40 000. При этом отечественный рынок электротранспорта имеет климатические, потребительские и географические особенности. Для успешной разработки и построения инфраструктуры станций заряда в России идеальным вариантом является использование решений и электронных компонентов китайских производителей – лидеров индустрии электротранспорта и возобновляемой энергетики, которые уже представлены в КОМПЭЛ. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Выполняю несколько иначе. В обработчике внешнего прерывания просто устанавливаю флаг

Наличия активности на входе. Сама же процедура подавления дребезга выполняется

В прерывании таймера, учитывая данный флаг.

Ссылка на комментарий
Поделиться на другие сайты

  • 4 месяца спустя...

Секреты депассивации литиевых батареек FANSO EVE Energy

Самыми лучшими параметрами по энергоемкости, сроку хранения, температурному диапазону и номинальному напряжению обладают батарейки литий-тионилхлоридной электрохимической системы. Но при длительном хранении происходит процесс пассивации. Разберем в чем плюсы и минусы, как можно ее избежать или уменьшить последствия и как проводить депассивацию батареек на примере продукции и рекомендаций компании FANSO EVE Energy. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Будет ли работать такой анти дребезг???

main:
clr temp ;сброс регистра
sbis pind,0 ;проверка порта Д, если 1 пропустить сдледующу команду
rjmp main ;безусловный переход к началу
rcall wait ;вызов програмы задержки
SBIC pind,0 ;проверка порта Д, если 1 пропустить сдледующу команду
ldi temp,0xFF ;запись в регистр значения
out portb,temp ;вывод в порт заначения регистра
rjmp main ;безусловный переход к началу



wait:
push loop
ldi loop, 200
wt1:
dec loop
brne wt1
pop loop
ret

Изменено пользователем hardbar

Очень люблю спасибку.

Спасибка ни кого еще не убила.

Професия: Електро-механик.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...