Клуб DiyAudio

Разное и полезное => Микроконтроллеры и их программирование => Тема начата: Злой от 08 Февраля 2018, 14:14:37

Название: Прерывание в прерывании
Отправлено: Злой от 08 Февраля 2018, 14:14:37
Вопрос появился такой, если повесить например энкодер одной ногой на прерывание. МК спит, приходит прерывание он начинает выполнять действие, а энкодер крутится дальше и вроде как опять приходит прерывание :d_know: :d_know: Или я зря навожу панику и в процессе  выполнения действия прерывания игнорятся?
Название: Re: Прерывание в прерывании
Отправлено: kkol от 08 Февраля 2018, 14:32:54
Думаю что МК "крутится" гораздо быстрее чем энкодер.  :yes:
Прерывания не игнорятся.
Главное что бы само действие не выполнялось в прерывании, а только им вызывалось.
Название: Re: Прерывание в прерывании
Отправлено: Злой от 08 Февраля 2018, 16:01:24
Хорошо, но дребезг контактов сопоставим по быстродействию со скоростью МК, по первому фронту запускается процесс, а тут с дребезгом МК видит или не видит следующее прерывание  :d_know:.
Название: Re: Прерывание в прерывании
Отправлено: hippo64 от 08 Февраля 2018, 16:05:07
Марат, правила хорошего тона предписывают первой же командой при вваливании в обработку прерывания запретить прерывания, при вываливании разрешить и только тут проверятся флаги  и опять улетим , если флаг прерывания есть. По крайней мере нам это вдалбливали в голову.
Название: Re: Прерывание в прерывании
Отправлено: Злой от 08 Февраля 2018, 16:32:25
По крайней мере нам это вдалбливали в голову.
Хорошо если вдалбливали, у меня и близко ничего подобного не было. На Бейсике все можно сказать и закончилось :(
Название: Re: Прерывание в прерывании
Отправлено: hippo64 от 08 Февраля 2018, 16:37:32
Нам окромя ассемблера ничего не разрешали  :(
Название: Re: Прерывание в прерывании
Отправлено: Althair от 08 Февраля 2018, 16:47:53
Хорошо, но дребезг контактов
Именно для этого придуманы условия вызова прерывания - по переднему фронту, по заднему, по полному импульсу, по факту изменения состояния ноги... RTFM  ;D