Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
final_vershion.doc
Скачиваний:
66
Добавлен:
26.03.2015
Размер:
305.15 Кб
Скачать

2 Механизм прерываний. Как можно увеличить число внешних прерываний за счет таймера то?

Прерывания от таймеров/счетчиков вызываются установкой флагов TF0 и TF1 регистра TCON, которые устанавливаются при переполнении соответствующих регистров таймеров/счетчиков (во все разряды T1 записываются единицы) (за исключением режима 3). Далее содержимое счётчика будет увеличено на 1 в том случае, если в предыдущем цикле был считан входной сигнал высокого уровня, а в следующем – сигнал низкого уровня (переход из "1" в "0" – прерывание по фронту), после чего будет отправлен запрос на прерывание. Очистка флагов TF0 и TF1 производится внутренней аппаратурой МК при переходе к подпрограмме обслуживания прерывания.

3 Таймеры. Сторожевой таймер (аппаратурное решение).

Сторожевой таймер (WDT):

Все микроконтроллеры семейства MCS-96 имеют сторожевой таймер. По прошествии определенного интервала времени он переводит микроконтроллер в состояние сброса. Работающая программа должна предотвращать сброс микроконтроллера, сбрасывая в нулевое состояние WDT. При сбое сторожевой таймер не сбрасывается, и при переполнении микроконтроллер сбрасывается, что предотвращает опасные ситуации в системе управления. Некоторые микроконтроллеры могут обнаруживать падение частоты генератора тактовых импульсов (OFD). При снижении частоты ниже определенного уровня OFD сбрасывает микроконтроллер. Это предотвращает появление опасных комбинаций сигналов на выходах микроконтроллера, которые могут возникнуть при остановке генератора тактовых импульсов.

(аппаратное решение)Микроконтроллер содержит аппаратный сторожевой таймер. Если работа WDT разрешена, он через заданный в регистре WMCON временной промежуток (от 16 до 2048 мс) сбрасывает микроконтроллер. Избежать сброса можно, если 0 содержимое счетчика сторожевого таймера. Обычно включают в цикл программы команды, периодически обнуляющие счетчик таймера. "Зависание" программы останавливает основной цикл и через заданный промежуток времени микроконтроллер «сбрасывается». Сторожевой таймер выключается после сброса и в режиме Power Down. Запускается он установкой в 1 бита WDTEN регистра управления WDT, после чего программа должна его сбрасывать, записывая 1 в WDTRST. WDT имеет низший приоритет, запускается программно, используется в системах где есть электрические помехи или сбои по питанию. В режиме сторожевого таймера может работать только четвертый модуль PCA. Сигнал сброса срабатывает, когда происходит совпадение значения РСА таймера-счетчика со значением регистров ССАР4Н, CCAP4L (рис.). Бит WDTE в регистре CMOD устанавливает этот режим. При этом четвертый модуль должен находиться в режиме программи­руемого таймера или скоростного вывода. Предотвратить сброс можно тремя способами:

- изменять значения ССАР4Н, CCAP4L, что бы оно не совпало с РСА таймером-счетчиком;

- изменять регистры СН, CL РСА таймера-счетчика, чтобы они не совпали с ССАР4Н, GCAP4L;

- выключить охранный таймер сбросом WDTE перед совпадением и затем включить его.

Третий способ трудно реализовать. Второй способ не рекомендуется если таймер РСА используется другим модулем.

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]