реклама на сайте
подробности

 
 
> Отложенные прерывания на PIC16, Не догоняю по скудоумию своему... памахитя!
Mishel
сообщение Mar 8 2006, 06:23
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 24
Регистрация: 10-02-06
Пользователь №: 14 205



Сколько я ни читаю даташит, но до конца так и не понял: что происходит, если во время отработки прерывания (до сброса флага прерывания, например TMR0IF - на F877) возникают условия для нового прерывания (другой природы, например CMIF).
В "Справочнике по среднему семейству..." с микрочип.ру, на странице 106 (по нумерации acrobat) есть упоминания об "отложенных" и "ожидающих" прерываниях:
"Возврат из обработки прерываний выполняется по команде RETFIE, пои этом происходит установка бита GIE в '1', что позволяет обработать любое ОТЛОЖЕННОЕ ПРЕРЫВАНИЕ".
"Примечание 2. При выполнении команды, сбрасывающей бит GIE в '0', любое прерывание, ОЖИДАЮЩЕЕ выполнения в следующем машинном цикле, игнорируется. ... Игнорированные прерывания ставятся в ОЖИДАНИЕ выполнения, пока бит GIE не будет установлен в '1'".
Однако на этом описание данного вопроса и заканчивается. В официальных даташитах на английском - ещё меньше.
Я уже понял, что процедура прерывания не может быть прервана другим прерыванием. Но существует ли очередь отложенных прерываний - хз.
В принципе незнание данной тонкости не мешает мне писать на "бытовом" уровне, и оно работает, но хотелось бы...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
*Leks*
сообщение Mar 9 2006, 09:44
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 28-01-06
Из: Москва
Пользователь №: 13 719



В начале обработки прерывания надо запретить прерывания и сбросить флаг, вызвавший прерывание. Разрешить новое прерывание нужно только при выходе из обработки. Теперь при возникновении нового условия прерывания программа сначала закончит обработку старого а затем, при выходе из обработки, снова зайдёт обратно.
Go to the top of the page
 
+Quote Post
miga
сообщение Mar 10 2006, 18:08
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 117
Регистрация: 6-04-05
Пользователь №: 3 928



Цитата(*Leks* @ Mar 9 2006, 12:44) *
В начале обработки прерывания надо запретить прерывания ...
Разрешить новое прерывание нужно только при выходе из обработки.

Собственно говоря, все это делается автоматически - никаких дополнительных манипуляций с GIE делать не нужно.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th June 2025 - 03:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.01411 секунд с 7
ELECTRONIX ©2004-2016