Читайте также:
|
|
При установленном ШИМ режиме таймер/счетчик1 и регистры сравнения выхода A и B (OCR1A и OCR1B), образуют сдвоенный 8, 9 или 10-разрядный автономный генератор ШИМ с правильным чередованием фаз, отсутствием ложных выбросов и выходами на выводы PD5(OC1A) и OC1B. Таймер/счетчик1 работает как реверсивный счетчик, считающий от $0000 до TOP (см. таблицу 18), при котором направление счета меняется и отсчет ведется до нуля, после чего цикл повторяется. Когда состояние счетчика совпадет с содержимым 10 младших битов OCR1A или OCR1B, выводы PD5(OC1A)/OC1B устанавливаются или очищаются, в соответствии с установками битов COM1A1/ COM1A0 или COM1B1/COM1B0 в регистре управления таймером/счетчиком1 TCCR1A. Подробности см. в таблице 19.
Таблица 18. TOP значения таймера и частота ШИМ
Разрешение ШИМ | TOP значения таймера | Частота ШИМ |
8-разрядное | $00FF (255) | f TC1 /510 |
9-разрядное | $01FF (511) | f TC1 /1022 |
10-разрядное | $03FF (1023) | f TC1 /2046 |
Таблица 19. Выбор режима сравнения1 в ШИМ режиме
COM1X1 | COM1X0 | Выходной сигнал на OCX1 |
Не подключен | ||
Не подключен | ||
Очищается по совпадению при счете вверх. Устанавливается по совпадению при счете вниз (не инвертированный ШИМ) | ||
Очищается по совпадению при счете вниз. Устанавливается по совпадению при счете вверх (инвертированный ШИМ) |
Примечание: X = A или B.
Отметим, что в ШИМ режиме младшие 10 разрядов OCR1A/OCR1B, при записи, пересылаются в ячейки временного хранения. Они фиксируются по достижении таймером/счетчиком1 значения TOP. Таким способом обеспечивается защита от появления уширенных ШИМ импульсов (ложных выбросов - glitches) при несинхронной записи OCR1A/OCR1B. См. пример на рис. 36.
Рис. 36. Эффект несинхронной фиксации OCR1
При чтении OCR1A или OCR1B, в промежутке времени между записью и фиксацией, будет считано содержимое ячейки временного хранения. Это означает, что более раннее записанное значение всегда будет считываться из OCR1A/B.
Когда OCR1 содержит $0000 или TOP, вывод OC1A/OC1B остается на низком уровне, соответственно установкам COM1A1/COM1A0 или COM1B1/COM1B0. Это отображено в таблице 20.
Таблица 20. Состояния выходов в ШИМ режиме при OCR1X = $0000 или TOP
COM1X1 | COM1X0 | OCR1X | Состояние выводов OC1X |
$0000 | L | ||
TOP | H | ||
$0000 | H | ||
TOP | L |
Примечание: X = A или B.
В ШИМ режиме флаг переполнения таймера1 (TOV1) устанавливается при смене направления счета по достижении значения $0000. Прерывание по переполнению таймера1 работает так же как и в обычном режиме таймера/счетчика, т.е. оно выполняется когда TOV1 установлен и разрешены прерывания по переполнению таймера1 и глобальные прерывания. Это относится и к флагам сравнения выхода таймера1 и прерываниям.
Сторожевой таймер (Watchdog Timer)
Рис. 37. Сторожевой таймер
Сторожевой таймер тактируется отдельным встроенным генератором, работающим с частотой 1 МГц при типовом напряжении питания VCC=5 В (см. типовые значения при других значениях VCC). Установкой коэффициента предварительного деления можно изменять длительность интервала до сброса по сторожевому таймеру от 16 тыс. до 2048 тыс. циклов (от 16 до 2048 мс). Команда WDR (Watchdog Reset) сбрасывает сторожевой таймер.
С момента сброса сторожевого таймера можно установить восемь периодов длительности тактового сигнала, устанавливая, таким образом длительность периода сброса. Если период сброса завершается (в течение этого периода не поступил сигнал сброса сторожевого таймера), то микроконтроллер ATmega603/103 сбрасывается и его работа продолжается по вектору сброса. Подробности тактирования сброса по сторожевому таймеру см. выше в разделе Сброс по сторожевому таймеру.
При разрешении сторожевого таймера его состояние неизвестно и прежде, чем разрешать сторожевой таймер, необходимо выполнить команду WDR. В ином случае прибор может быть сброшен прежде, чем будет выполнена команда WDR прописанная после разрешения. Для предотвращения случайного запрета, запрет сторожевого таймера должен сопровождаться специальной процедурой выключения. Подробности в описании регистра управления сторожевым таймером.
Регистр управления сторожевым таймером - WDTCR - (Watchdog Timer Control Register)
Биты |
| |||||||||
$21 ($41) |
| WDTCR | ||||||||
Чтение/Запись |
| |||||||||
Начальное состояние |
|
Таблица 21. Выбор коэффициента предварительного деления тактовой частоты сторожевого таймера
WDP2 | WDP1 | WDP0 | Длительность цикла сторожевого таймера |
16 тыс. циклов | |||
32 тыс. циклов | |||
64 тыс. циклов | |||
128 тыс. циклов | |||
256 тыс. циклов | |||
512 тыс. циклов | |||
1024 тыс. циклов | |||
2048 тыс. циклов |
Дата добавления: 2015-07-10; просмотров: 145 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Регистры сравнения выхода таймера/счетчика1 | | | Обращение к EEPROM при чтении/записи |