О высоком. Занимаясь электроникой - аналоговой и цифровой(на жесткой логике), настраиваешся на событийный характер работы схемы. Ну так, нажал кнопку сработал - сработал триггер, нажал другую - разрядился кондер и запустил некую схему. Подал на вход транзистора сигнал - тут же ждешь его на выходе. Как же перестроить сознание на программировние МК, когда ту же клавиатуру нужно простоянно опрашивать в цикле, раз в одну миллисекунду скажем? При программировании ведь нужен совершенно другой подход к проектировнию устройства.
Комментарии: 11
Anonim
Все просто, если событием будешь считать начало нового такта процессора. Ну или хотя бы новую итерацию главного цикла
Anya
переходим с ивентов на поллинг :D
Anonim
поллинг дорогое удовольствие
Anonim
что значит дорогое? В главном цикле идет опрос клавиатуры сидящей, к примеру, на АЦП контроллера. В чём дороговизна сего метода?
Anonim
проблема решается понятием таски/процесса. таска большую часть времени спит, просыпаясь лишь когда для неё есть работа. код приёма событий извне изолирован от обработки, лишь выставляет флаги для тасок в том, что а) у тебя относительно дорогой проц занят пустой, бесполезной работой почти всё время. б) если ты его нагрузишь ещё чем-то в параллель - то можешь пропустить нажатие
Andor
чо тут опять rtos выдумывают?
Anonim
всё уже придумано до нас :)
Anonim
т.е. в таком случае лучше применить отдельный контроллер клавиатуры и выдавать по прерыванию код нажатой кнопки? до РТОСа еще очень далеко :-)
Anonim
можно без контроллера, просто кнопку на прерывание повесить, смотря сколько кнопок у тебя
Anonim
5 кнопок на одном порту АЦП
Anonim
в идеале - да. но опять же, смотря что у тебя за задача