Ответ: перегрелся я, да и сервер глючит, всё проще, наверное:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено N_BOGOYAVLENSKY 02 июля 2004 г. 14:39
В ответ на: поллингом ничего не мешает - ваша правда. Но сдается мне, что в исходном вопросе - содержится логическая ошибка отправлено bialix 02 июля 2004 г. 12:52

EA включен постоянно.
Просто в критичные моменты выполнения программы (они длительные) выключить все прерывания и потом включить - нельзя мне :) Дело в том, что эти самые притичные моменты программы могут длиться несколько секунд и прерывание я могу просто пропустить! (у меня два прерывания: одно внешнее и второе от последовательного порта).

Какое из прерываний произошло я определяю как раз поллингом (RI, IE1). Вопрос заключается в том, как мне сейчас все-таки выполнить подпрограмму обработки прерывания, которое произошло, допустим, 2 секунды назад и моя программа в это время не могла на прерывание отвлечься.

Видимо придётся делать так:
все прерывания запрещаются
когда мы можем запустить подпрограмму обработки, мы делаем поллинг наших флагов и вызываем необходимую подпрограмму, только уже с RET а не с RETI. И всё. Как такового прерывания у нас уже нет и векторы нам не нужны :)

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru