Клуб DiyAudio
Разное и полезное => Микроконтроллеры и их программирование => Тема начата: Злой от 08 Февраля 2018, 14:14:37
-
Вопрос появился такой, если повесить например энкодер одной ногой на прерывание. МК спит, приходит прерывание он начинает выполнять действие, а энкодер крутится дальше и вроде как опять приходит прерывание :d_know: :d_know: Или я зря навожу панику и в процессе выполнения действия прерывания игнорятся?
-
Думаю что МК "крутится" гораздо быстрее чем энкодер. :yes:
Прерывания не игнорятся.
Главное что бы само действие не выполнялось в прерывании, а только им вызывалось.
-
Хорошо, но дребезг контактов сопоставим по быстродействию со скоростью МК, по первому фронту запускается процесс, а тут с дребезгом МК видит или не видит следующее прерывание :d_know:.
-
Марат, правила хорошего тона предписывают первой же командой при вваливании в обработку прерывания запретить прерывания, при вываливании разрешить и только тут проверятся флаги и опять улетим , если флаг прерывания есть. По крайней мере нам это вдалбливали в голову.
-
По крайней мере нам это вдалбливали в голову.
Хорошо если вдалбливали, у меня и близко ничего подобного не было. На Бейсике все можно сказать и закончилось :(
-
Нам окромя ассемблера ничего не разрешали :(
-
Хорошо, но дребезг контактов
Именно для этого придуманы условия вызова прерывания - по переднему фронту, по заднему, по полному импульсу, по факту изменения состояния ноги... RTFM ;D