|
29 / 13 / 0
Регистрация: 08.08.2011
Сообщений: 190
|
|
Необходимость прерываний для опроса кнопок при реализации меню16.10.2012, 12:48. Показов 4945. Ответов 15
Метки нет (Все метки)
Добрый день всем! Помогите разобраться с прерываниями, не могу понять критичность их использования, ведь получать информацию о нажатии можно и без прерываний, а для реализации прерываний - специальные пины, 2 из которых я уже занял часовым кварцем, таймером, переполянющемся раз в секунду.
Так как мне поступить? Вешать кнопки на эти пины для прерываний(извините если глупость сказал)? Писать "ожидатель" нажатия кнопки в теле прерывания таймера часового кварца? Или писать "ожидатили" в wile(1)? - тут тоже вопрос: до или после проверки 3х бит ASSR? Мне бы хотелось применить 4 кнопки, и использовать их в устройстве, а не только при отладке, поэтому хотелось бы узнать про грамотный вариант, приемлемый по сложности для начинающего. Кнопки эти будут водить по меню и давать управлять значением переменных.
0
|
|
| 16.10.2012, 12:48 | |
|
Ответы с готовыми решениями:
15
Иерархическое меню из четырёх кнопок. Как продумать логику реализации программа должна содержать меню для проверки всех методов класса; желательно для реализации меню разработать отдельную Необходимость реализации виртуальнй функции |
|
|
|
| 16.10.2012, 13:37 | |
|
...можно повесить опрос клавиатуры на прерывание таймера, т.е. в нем опрашивать, декодировать, реализовать антидребезг. В то же время, никто не мешает в основном цикле тела опрашивать состояние кнопок с тем же антидребезгом (задержкой). Недостатком последнего способа является рост длительности выполнения основного цикла программы от количества опрашиваемых таким образом кнопок.
Так что, решать вам, в зависимости от критичности времени исполнения.
1
|
|
|
29 / 13 / 0
Регистрация: 08.08.2011
Сообщений: 190
|
|
| 16.10.2012, 14:11 [ТС] | |
|
А антидребезг это ведь не только задержка, еще и конденсатор надо ставить?
То-есть в принципе, прерывание используется для как бы оптимизации(нет в каждомом цикле проверки кнопки, а возникает прерывание при нажатии)?
0
|
|
|
29 / 13 / 0
Регистрация: 08.08.2011
Сообщений: 190
|
|
| 16.10.2012, 15:47 [ТС] | |
|
0
|
|
|
|
|
| 16.10.2012, 15:57 | |
|
...скажем так, по прерыванию можно будить МК из спящего режима, для экономии энергии, если источник питания автономный и цикл работы гаджета предполагается по-большей части неактивный ...сбор медленно изменяющихся значений, системы контроля и охраны и т.п.
1
|
|
|
29 / 13 / 0
Регистрация: 08.08.2011
Сообщений: 190
|
||
| 16.10.2012, 16:15 [ТС] | ||
|
0
|
||
|
29 / 13 / 0
Регистрация: 08.08.2011
Сообщений: 190
|
|
| 16.10.2012, 17:04 [ТС] | |
|
Сделать 1 кнопку через прерывание или не использовать спящий режим, таков выбор?
0
|
|
|
29 / 13 / 0
Регистрация: 08.08.2011
Сообщений: 190
|
||||||
| 18.10.2012, 19:33 [ТС] | ||||||
|
Вот, пытаюсь сделать меню на 4 кнопках. Подключил все кнопки на землю/к пинам МК, включил подтягивающие резисторы внутри МК, сами пины на вход. Код пишу в основной программе, хотя и по прерыванию тот же еффект. Почему то срабатывает кнопка вниз - сама по себе, может я проверяю неправильно?
0
|
||||||
|
29 / 13 / 0
Регистрация: 08.08.2011
Сообщений: 190
|
|
| 20.10.2012, 15:03 [ТС] | |
|
Я потдключил свои кнопки на порт D и все заработало, я похоже сжег несколько ножек на С
0
|
|
|
29 / 13 / 0
Регистрация: 08.08.2011
Сообщений: 190
|
|
| 21.10.2012, 00:02 [ТС] | |
|
0
|
|
|
29 / 13 / 0
Регистрация: 08.08.2011
Сообщений: 190
|
|
| 21.10.2012, 14:58 [ТС] | |
|
0
|
|
| 21.10.2012, 14:58 | |
|
Помогаю со студенческими работами здесь
16
Необходимость реализации контроля тока в управл. двигателем Ошибка при реализации меню Модуль для реализации меню При реализации меню как сделать подменю и переход в другой пункт? При наведении на какую либо из кнопок в меню, издавалась мелодия Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|