[an error occurred while processing this directive] [an error occurred while processing this directive]
Иначе нет смысла использовать. (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Vit 08 января 2002 г. 17:40
В ответ на: Извините: отправлено Vallav 08 января 2002 г. 16:36

Например имеем С51 типа T89C51RD2, 2 уровня и надцать приоритетов прерываний, большая прога (скажем кило так 47), внешнее ОЗУ и часы-календарь, внешний сторож 1 с. Допустим, спим (айдл), ждём прерывания по часам, по питанию бежит крутая помеха и портит внешнее ОЗУ, сбивает часы и всем становится хорошо;) Соответственно, сторож нас дёрнет, если раньше не дёрнет календарь. Пусть дёрнул календарь, обработчик от великого удовольствия сбрОсил сторож, проверил какие-то (явно не все) переменные и с чувством выполненного долга увёл нас в айдл. Когда прошло заданное время, начинаем, например, делать (якобы) выпав в основное тело какие-нибудь дела, но счётчик адреса команд слететь тоже успел и в теле висим в невообразимом цикле. И тут откуда ни возьмись появилось прерывание часов - влетаем, сбрасываем сторож и уходим в айдл. Психоз налицо. С прерыванием по внутреннему таймеру и внутреннему сторожу аналогичная ситуация, только снаружи не очень заметишь;-) Приходится не ставить в обработчики прерываний сброс сторожа, и это правильно;-)

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

Ответы



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

E-mail: info@telesys.ru