Автор Тема: Прерывание в прерывании  (Прочитано 1691 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Злой

  • Старожил
  • *****
  • Сообщений: 1105
  • +8/-0
  • Марат Уфа
  • Поблагодарили: +27
Прерывание в прерывании
« : 08 Февраля 2018, 15:14:37 »
0
Вопрос появился такой, если повесить например энкодер одной ногой на прерывание. МК спит, приходит прерывание он начинает выполнять действие, а энкодер крутится дальше и вроде как опять приходит прерывание :d_know: :d_know: Или я зря навожу панику и в процессе  выполнения действия прерывания игнорятся?

Оффлайн kkol

  • Постоялец
  • ***
  • Сообщений: 278
  • +3/-0
  • Николай дер. Шаликово / м.Нахимовский проспект
  • Поблагодарили: +44
Re: Прерывание в прерывании
« Ответ #1 : 08 Февраля 2018, 15:32:54 »
0
Думаю что МК "крутится" гораздо быстрее чем энкодер.  :yes:
Прерывания не игнорятся.
Главное что бы само действие не выполнялось в прерывании, а только им вызывалось.

Оффлайн Злой

  • Старожил
  • *****
  • Сообщений: 1105
  • +8/-0
  • Марат Уфа
  • Поблагодарили: +27
Re: Прерывание в прерывании
« Ответ #2 : 08 Февраля 2018, 17:01:24 »
0
Хорошо, но дребезг контактов сопоставим по быстродействию со скоростью МК, по первому фронту запускается процесс, а тут с дребезгом МК видит или не видит следующее прерывание  :d_know:.

Оффлайн hippo64

  • Старожил
  • *****
  • Сообщений: 6386
  • +71/-7
  • Владимир
  • Поблагодарили: +1081
Re: Прерывание в прерывании
« Ответ #3 : 08 Февраля 2018, 17:05:07 »
0
Марат, правила хорошего тона предписывают первой же командой при вваливании в обработку прерывания запретить прерывания, при вываливании разрешить и только тут проверятся флаги  и опять улетим , если флаг прерывания есть. По крайней мере нам это вдалбливали в голову.

Оффлайн Злой

  • Старожил
  • *****
  • Сообщений: 1105
  • +8/-0
  • Марат Уфа
  • Поблагодарили: +27
Re: Прерывание в прерывании
« Ответ #4 : 08 Февраля 2018, 17:32:25 »
0
По крайней мере нам это вдалбливали в голову.
Хорошо если вдалбливали, у меня и близко ничего подобного не было. На Бейсике все можно сказать и закончилось :(

Оффлайн hippo64

  • Старожил
  • *****
  • Сообщений: 6386
  • +71/-7
  • Владимир
  • Поблагодарили: +1081
Re: Прерывание в прерывании
« Ответ #5 : 08 Февраля 2018, 17:37:32 »
0
Нам окромя ассемблера ничего не разрешали  :(

Оффлайн Althair

  • Гоша AKA Игорь
  • Модератор
  • *****
  • Сообщений: 1660
  • +16/-5
  • Бамбарбия кергуду
  • Поблагодарили: +112
Re: Прерывание в прерывании
« Ответ #6 : 08 Февраля 2018, 17:47:53 »
0
Хорошо, но дребезг контактов
Именно для этого придуманы условия вызова прерывания - по переднему фронту, по заднему, по полному импульсу, по факту изменения состояния ноги... RTFM  ;D