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

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

Оффлайн Злой

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

Оффлайн kkol

  • Старожил
  • *****
  • Сообщений: 1227
  • Репутация: 11
  • Поблагодарили: +1525
Re: Прерывание в прерывании
« Ответ #1 : 08 Февраля 2018, 14:32:54 »
0
Думаю что МК "крутится" гораздо быстрее чем энкодер.  :yes:
Прерывания не игнорятся.
Главное что бы само действие не выполнялось в прерывании, а только им вызывалось.

Оффлайн Злой

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

Оффлайн hippo64

  • Читаю форум
  • *****
  • Сообщений: 7135
  • Репутация: 72
  • Владимир
  • Поблагодарили: +5153
Re: Прерывание в прерывании
« Ответ #3 : 08 Февраля 2018, 16:05:07 »
0
Марат, правила хорошего тона предписывают первой же командой при вваливании в обработку прерывания запретить прерывания, при вываливании разрешить и только тут проверятся флаги  и опять улетим , если флаг прерывания есть. По крайней мере нам это вдалбливали в голову.

Оффлайн Злой

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

Оффлайн hippo64

  • Читаю форум
  • *****
  • Сообщений: 7135
  • Репутация: 72
  • Владимир
  • Поблагодарили: +5153
Re: Прерывание в прерывании
« Ответ #5 : 08 Февраля 2018, 16:37:32 »
0
Нам окромя ассемблера ничего не разрешали  :(

Оффлайн Althair

  • Старожил
  • *****
  • Сообщений: 1766
  • Репутация: 11
  • Поблагодарили: +348
Re: Прерывание в прерывании
« Ответ #6 : 08 Февраля 2018, 16:47:53 »
0
Хорошо, но дребезг контактов
Именно для этого придуманы условия вызова прерывания - по переднему фронту, по заднему, по полному импульсу, по факту изменения состояния ноги... RTFM  ;D