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

 
 
> Как выйти из оработки прерывания по RET, без востановления бита I в SREG
kamedi_clab
сообщение Apr 17 2007, 19:52
Сообщение #1


Местный
***

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



Подскажите как кошерно выйти из функции оработки прерывания по RET
а не по RETI т.е. без востановления бита I в SREG ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kv_addr
сообщение Apr 18 2007, 04:56
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 208
Регистрация: 6-07-04
Из: Полтава
Пользователь №: 279



С ассемблером все понятно, RET вместо RETI можно использовать без каких либо оговорок. А вот с Си получается значительно сложнее и, самое главное - некрасиво.

Как я понимаю, появилась необходимость по выходу из прерывания не разрешать определенное(ые) прерывание(ия) до какого-то события. На мой взгляд, в Си вполне легально это решается работой с битами разрешения/запрещения конкретных прерываний. Т.е. в подпрограмме обработки прерывания запещается(ются) конкретное(ые) прерывание(ия) и по выходу из нее оно(и) уже не работает(ют) до особого на то разрешения. А будучи вновь разрешенным(и) снова вызывает(ют) прерывание(я).

Конечно, это не так лаконично, как в ассемблере, зато вполне кошерно.
Go to the top of the page
 
+Quote Post



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

 


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


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