Чееевооо???? Это что, при добавлении в систему ещё одного обработчика прерываний (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено ReAl 01 ноября 2004 г. 19:17
В ответ на: понятно... отправлено A_F 01 ноября 2004 г. 16:19

во всех остальных расставлять рулёжку битами разрешения/запрещения этого прерывания? Причём не просто запрета/разрешения, а сохранения текущего состояния, запрета, потом его восстановления, так как не факт, что какое-либо прерывание в системе всё время включено.
Например, при организации UART-передачи по data register empty обработчик прерываний перед запихиванием последнего байта из буфера в UDR может сам себя запрещать (т.е. после передачи последнего байта флаг UDRF взведётся, но прерывания не произойдёт), а PacketSend потом помещать пакет в буфер и опять разрешать UDRE.
Предложенный подход с кросс-связями между обработчиками породит такое количество "левых" взаимосвязей в программе, убойный эффект от которого (на устойчивость программы) превысит возможный эффект от подходов "абсолютно все переменные в программе, включая счётчики циклов - глобальные и параметры в процедуры передаются только через них".
Т.е. себе дешевле будет взять процессор с более приличной системой прерываний, если система достаточно нагружена и требует для уменьшения времени реакции приоритетной системы прерываний :-)
(не "действительно приоритетной", а просто "приоритетной", коей у AVR просто нет).

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

Ответы



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

E-mail: info@telesys.ru