Форум программистов, компьютерный форум, киберфорум
Программируемая логика: ПЛИС, ПАИС
Войти
Регистрация
Восстановить пароль
 
1 / 1 / 2
Регистрация: 06.07.2009
Сообщений: 56
1

Дребезг кнопки

09.06.2021, 14:36. Показов 226. Ответов 2
Метки нет (Все метки)

Добрый день, использую чип EPM3032ALC44, пишу на Verilog.
Сильно не пинайте это мой третий проект (маленький).
Написал проект, при нажатии на кнопку происходит срабатывание раз 5-10, а может и больше.
Почитал соответствующие темы по дребезгу, везде используется CLK. но я не могу нигде взять этот сигнал, просто нет возможности подвести его ко входу.
Как-то можно сигнал CLK получить внутри чипа и если можно то КАК, и какой ни будь кусок кода попроще для обработки кнопки, а то нашел много примеров один больше другого.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.06.2021, 14:36
Ответы с готовыми решениями:

Дребезг кнопки
Начал писать скетч для автоматизации запуска некоторого электрооборудования (это пока что только...

дребезг кнопки
как сделать в протеусе дребезг кнопки?

Предполагаемый дребезг кнопки, pic12f1501
RA0-вход RA2-выход Обработка срабатывания при нажатии в функции interrupt isr. Проблема в...

Дребезг кнопки (а может и нет) ATmega8a
Хоть плачь, не могу понять, то ли в программе неправильно что-то делаю, то ли дребезг виноват,...

2
32 / 25 / 7
Регистрация: 28.11.2013
Сообщений: 141
09.06.2021, 22:31 2
Вы сами разрабатывали прибор с данной плис? Обычно на плате присутствует отдельная микросхема-генератор. А так на примитивах собирают схемы, вот например https://m.habr.com/ru/post/509626/. Гуглите "тактирование плис без генератора".
Я с альтерой не работал, но вроде как там есть в tools -> в IP Catalog раздел Basic Function - Configuratiion and Programming.-> В нем - Internal Oscillator.

Добавлено через 11 минут
Насчёт антидребезга, то там просто счётчик-блокиратор сделайте.
На vhdl будет примерно так:
Код
Max_pause_time <= 1000; // количество тактов для блокировки повторного нажатия

If (button = '1') then
  flag_pause <= '1';
end if;

if (flag_pause ='1') then
  if (count_pause < Max_pause_time) then
    count_pause <= count_pause + 1;
  else
    count_pause <= 0;
    flag_pause <= '0';

    // Здесь пишем что должна делать кнопка

  end if;
end if;
1
1 / 1 / 2
Регистрация: 06.07.2009
Сообщений: 56
10.06.2021, 08:45  [ТС] 3
Спасибо, на эту статью я натыкался, вот для счетчика мне и нужен сигнал Клок.
Буду вечером экспериментировать.
Подскажите вот-так получится или нет:

wire SIGNAL_CLK;
assign SIGNAL_CLK = ~SIGNAL_CLK;

По идее частота должна быть равной частоте цикла (+/-).
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.06.2021, 08:45

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Дребезг контактов
Приветствую всех! Есть вопрос на stm32l152 сделал моргалки по кнопке, работает, но присутствует...

Дребезг, прерывание
Немного не селен в прерываниях. подскажите как установить таймер для проверки нажатия кнопки и...

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

Дребезг аналогового компаратора!
Привет всем! Как, собственно, подавить? Ничего толкового придумать не могу, может кто подскажет...

Дребезг контактов и оптопара
Имеется обычный контактный датчик,через резистор напряжение с него(когда замкнут) подается на...

Энкодер через прерывания / зараза дребезг
Всем привет! Делаю обработчик сигнала с инкрементального двухфазного энкодера . Алгоритм...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.