ТАВРОФОРУМ

Вернуться   ТавроФорум > Не автомобильные темы > Хобби

Хобби Фотография, рыбалка, спорт etc. (Для девушек - вязание :))

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.10.2018, 13:01   #22
vics13
 
Адрес: Бердянськ
Возраст: 55
Сообщений: 17,388
Машина: Slavuta 110308 1.3Si
Длина: 212950мкм
Диаметр: 39мм
По умолчанию

Цитата:
Сообщение от Yurasvs Посмотреть сообщение
Ардуино - страшная штука для отравления мозгов. Начинать с Ардуины категорически не советую. Лучше программировать на нормальном Си с помощь любого компилятора (IAR, Keil, Icc, GCC) и заливать готовый Хекс в Ардуину с помощью ее же загрузчика. Сама жесткая структура скетча и занятость многих важных ресурсов проца под собственные нужды "Ардуино ОС" сильно мешают жить. Например, из всего трех встроенных таймеров Меги 328, которая стоит в Ардуино Уно, один занят под системные нужды, 2 других тоже доступны с некоторыми ограничениями. Но если уж взялись...
Подходов к устранению дребезга может быть много разных. Все зависит от наличия свободных ресурсов скорости выполнения основного цикла и т.д. Проще всего опрашивать кнопки реже, чем раз в 50мс где-то, тогда дребезг будет незаметен. Если важна скорость реакции, лучше опрашивать в прерывании. Эффективный алгоритм антидребезга здесь
http://embedders.org/blog/gdi/debouncing.html
Этот код настолько прост и быстр, что его можно засунуть непосредственно в прерывание , вызываемое по таймеру несколько десятков раз в секунду. Но я обычно в прерывании только определяю, что какая-то из кнопок изменила положение (неважно какая, сравниваю со старым значением все биты сразу в одно действие). При обнаружении изменения выставляю флаг, который неспешно обрабатывается и сбрасывается основным циклом, он уже разбирается , что именно нажато и что надо с этим делать.

Для першого разу ардуїна проканає. У мене Мега2560. А код тупо не влазить в Нану чи Уно. Займатися ж перепилюванням готової ліби, яка вирішує 80% моїх потреб немає сенсу. Та й зайнятість критичних ресурсів якось не особливо парить. Мега2560 зараз працює в N2k мережі де є 2 лоріковські голови, Point-1, моторгайд, ходовий двигун Ямаха, датчик залишку і розходу палива. І при цьому сама є нодою і шле підтасовані дані в мережу. Ну ще для крокового двигуна тікає таймер 1000 разів за 10-30 сек.
Так от чому ж я і запитав. В цьому перериванні таймера просто визначати стан порту із кнопками а потім вже не поспішаючи вияснити шо було натиснуто і зробити дебаунс. Тим більш в час коли натиснута кнопка основна діяльність припиняється до встановлення нових параметрів.
__________________
СМИ сегодня есть инструмент идеологии, а не информации.
Главное в их сообщениях — идеи, внедряемые в наше сознание контрабандой.
vics13 вне форума   Ответить с цитированием
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 13:58. Часовой пояс GMT +3.


Перевод: zCarot Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.