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

 
 
> Обработка нажатия кнопок
aBoomest
сообщение Jun 18 2018, 18:12
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 167
Регистрация: 24-12-08
Из: Россия
Пользователь №: 42 714



Всем доброго дня.
Привожу нижеследующий код:
Код
  OnButtonLeft_Down:
  process(OnBtnLeft_DownEvent)
  begin
    if rising_edge(OnBtnLeft_DownEvent) then
        if (PulsePerPeriod_VAR > 0) then
              PulsePerPeriod_VAR := PulsePerPeriod_VAR - 1;           --<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
       end if;
     end if;
  end process OnButtonLeft_Down;

  OnButtonRight_Down:
  process(OnBtnRight_DownEvent)
  begin
    if rising_edge(OnBtnRight_DownEvent) then
        if (PulsePerPeriod_VAR < PulsePerPeriod_VAR_MAX) then
              PulsePerPeriod_VAR := PulsePerPeriod_VAR + 1;           --<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
       end if;
     end if;
  end process OnButtonRight_Down;
(PulsePerPeriod_VAR объявлена как shared variable)
Это обработка нажатия двух кнопок (вправо, влево)
Само нажатие работает нормально, по которому я формирую "событие-сигнал" нажатия кнопки (либо правой, либо левой - по названиям процессов все понятно)
при этом обращаю внимание на выделенные две строки. Если их закоментировать - все компилируется. Если оставить одну из них - тоже компилируется. А вот обе - сразу дает ошибку.
Я чую конечно что так писать нельзя. (Переменная PulsePerPeriod_VAR в обоих процессах одна и таже)
Но почему? Не могу понять и найти объяснение. Уже неделю копаю и в инете и в книгах Бибило.
1. Может кто-нибудь популярно объяснить почему так нельзя?
2. Как реализовать нажатие нескольких кнопок, когда по нажатию надо изменять значение одного и того же параметра (в данном случае увеличить или уменьшить значение переменной PulsePerPeriod_VAR)
3. Может кто посоветовать литературу такого плана - дается к.л. конструкция кода и далее какую структуру она порождает и описание это (примеры). Не готовые схемы счетчиков и т.п. а наоборот, с т.з. языка vhdl. Код -> структура -> описание.

Сообщение отредактировал aBoomest - Jun 18 2018, 18:18


--------------------
C уважением!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aBoomest
сообщение Jun 27 2018, 19:17
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 167
Регистрация: 24-12-08
Из: Россия
Пользователь №: 42 714



Цитата(Plain @ Jun 24 2018, 14:42) *
"Да наоборот же! ©" ............
Спасибо. Дельно.

Вот такой вопрос, чтобы понять нюанс, по сообщениям номер 15 и номер 23:

Какую частоту должны иметь сигналы clk?

В моем случае антидребезг с временем 10 мс. (используется частота 100 Гц)
А та частота о которой говорю, она же , как я понимаю должна быть <100 Гц (или <=100Гц). По крайней мере, вроде как она не должна быть больше.
Т.е. эта частота определяет с какой скоростью PulsePerPeriod_VAR будет увеличиваться/уменьшаться на 1.
Т.е. если clk = 1 Гц, то при нажатой кнопке UP один раз в секунду PulsePerPeriod_VAR будет увеличиваться на единицу. Правильные рассуждения?
Если да, то что всетаки может помешать сделать clk > 100 Гц?


--------------------
C уважением!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- aBoomest   Обработка нажатия кнопок   Jun 18 2018, 18:12
- - Plain   Да потому что кнопки сейчас мифические. Перейдите ...   Jun 18 2018, 19:09
- - Александр77   А может корректнее завести все в один процесс и та...   Jun 19 2018, 03:10
|- - Flip-fl0p   Предлагаю все объединить в одном процессе. Заменит...   Jun 19 2018, 04:43
- - aBoomest   Цитата(Plain @ Jun 18 2018, 22:09) Да пот...   Jun 19 2018, 06:48
|- - Flip-fl0p   ЦитатаЕсли есть знатоки как красиво делать антидре...   Jun 19 2018, 07:08
|- - _Anatoliy   Цитата(aBoomest @ Jun 19 2018, 09:48)   Jun 19 2018, 07:18
|- - Plain   Цитата(aBoomest @ Jun 19 2018, 09:48) син...   Jun 19 2018, 08:39
- - aBoomest   Цитата(Flip-fl0p @ Jun 19 2018, 10:0...   Jun 19 2018, 07:24
|- - Flip-fl0p   Цитата(aBoomest @ Jun 19 2018, 10:24) На ...   Jun 19 2018, 07:37
- - aBoomest   Цитата(Plain @ Jun 19 2018, 11:39) В этом...   Jun 19 2018, 10:47
|- - iosifk   [quote name='aBoomest' date='Jun 19 20...   Jun 19 2018, 10:52
- - aBoomest   Так точно, работает! PS: На счет того как зас...   Jun 19 2018, 11:07
- - aBoomest   Цитата(Flip-fl0p @ Jun 19 2018, 07:4...   Jun 21 2018, 18:39
|- - Flip-fl0p   Цитата(aBoomest @ Jun 21 2018, 21:39) Пе...   Jun 21 2018, 19:33
|- - iosifk   Цитата(aBoomest @ Jun 21 2018, 21:39) Не,...   Jun 21 2018, 19:54
- - Plain   В схеме по-прежнему несколько тактовых сигналов, а...   Jun 21 2018, 19:42
|- - Flip-fl0p   Цитата(Plain @ Jun 21 2018, 22:42) Наприм...   Jun 21 2018, 19:53
||- - Plain   Цитата(Flip-fl0p @ Jun 21 2018, 22:5...   Jun 21 2018, 20:15
||- - Flip-fl0p   Цитата(Plain @ Jun 21 2018, 23:15) Резуль...   Jun 21 2018, 20:24
|- - Plain   Цитата(Plain @ Jun 21 2018, 22:42) создат...   Jun 24 2018, 11:42
- - Plain   У автора тактовая частота 100 Гц.   Jun 21 2018, 20:46
- - aBoomest   Спасибо всем за ответы! Все говорят и советуют...   Jun 22 2018, 05:48
|- - Flip-fl0p   Цитата(aBoomest @ Jun 22 2018, 08:48) Во...   Jun 22 2018, 06:12
|- - Plain   Цитата(aBoomest @ Jun 22 2018, 08:48) вро...   Jun 22 2018, 08:20
|- - iosifk   Цитата(aBoomest @ Jun 27 2018, 22:17) Как...   Jun 27 2018, 19:33
|- - Plain   Цитата(aBoomest @ Jun 27 2018, 22:17) при...   Jun 27 2018, 20:17
|- - Flip-fl0p   Цитата(aBoomest @ Jun 27 2018, 22:17) Чт...   Jun 28 2018, 04:50
- - Plain   Конкретизирую по повторам. Минимальный период ручн...   Jun 28 2018, 11:53


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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 00:39
Рейтинг@Mail.ru


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