COM1A1 | COM1A0 | OCR1A | вывод OC1 |
1 1 | 0 0 | 0000h TOP | низкий высокий |
1 1 | 1 1 | 0000h TOP | высокий низкий |
В режиме ШИМ флаг переполнения таймера 1 (TOV1) устанавливается когда счетчик изменяет направление счета в точке 0000h. Прерывание по переполнению таймера 1 работает как при нормальном режиме работы таймера/счетчика, т.е. оно выполняется, если установлен флаг TOV1 и разрешены соответствующие прерывания. То же самое касается флага совпадения и прерывания по совпадению.
СТОРОЖЕВОЙ ТАЙМЕР
Сторожевой таймер работает от отдельного встроенного генератора работающего на частоте 1 MHz (это типовое значение частоты для питания 5В). Управляя предварительным делителем сторожевого таймера можно задавать интервал сброса таймера от 16 до 2048 mS. Команда WDR сбрасывает сторожевой таймер. Для работы сторожевого таймера можно выбрать одно из 8-ми значений частоты, что позволяет в широких пределах изменять время между исполнением команды WDR и сбросом процессора. При отработке периода работы сторожевого таймера, если не поступила команда WDR, AT90S2313 сбрасывается, выполнение программы продолжается с вектора сброса.
Для предотвращения нежелательного отключения сторожевого таймера, для его запрещения должна выполняться определенная последовательность, которая описана при рассмотрении регистра WDTCR.
РЕГИСТР УПРАВЛЕНИЯ СТОРОЖЕВЫМ ТАЙМЕРОМ – WDTCR
WDTCR
21h(41h) | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
WDTOE | WDE | WDP2 | WDP1 | WDP0 | ||||
R | R | R | R | R\W | R\W | R\W | R\W | |
Начальное значение | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Биты 7..5 - зарезервированы. В AT90S2333/4433 эти биты зарезервированы и всегда читаются как 0.
Бит 4 - WDTOE - разрешение выключения сторожевого таймера. При очистке бита WDE этот бит должен быть установлен (1). Иначе, работа сторожевого таймера не прекращается. Через четыре такта после установки этого бита, он аппаратно сбрасывается.
Бит 3 - WDE- разрешение сторожевого таймера. Если бит установлен (1), работа сторожевого таймера разрешена, если бит сброшен - запрещена. Сброс бита производится только в том случае, если бит WDTOE установлен в 1. Для запрещения включенного сторожевого таймера должна исполняться следующая процедура:
1. Одной командой записать 1 в WDTOE и WDE. Единица в WDE должна записываться даже в том случае если этот бит был установлен перед началом процедуры остановки таймера
2. В течение следующих четырех тактов процессора необходимо записать в WDE логический 0, при этом работа сторожевого таймера запрещается.
Биты 2..0 - WDP2..0 - Биты предварительного делителя сторожевого таймера. Если работа сторожевого таймера разрешена, эти биты определяют предварительный коэффициент деления для сторожевого таймера. В таблице 15 приведены различные значения установок предварительного делителя и соответствующие им временные интервалы для напряжения питания Vcc=5V.
Таблица 15. Установки предварительного делителя сторожевого таймера
WDP2 | WDP1 | WDP0 | период времени |
0 | 0 | 0 | 16K циклов |
0 | 0 | 1 | 32K циклов |
0 | 1 | 0 | 64K циклов |
0 | 1 | 1 | 128K циклов |
1 | 0 | 0 | 256 циклов |
1 | 0 | 1 | 512 циклов |
1 | 1 | 0 | 1024 циклов |
1 | 1 | 1 | 2048 циклов |
ЧТЕНИЕ И ЗАПИСЬ В ЭНЕРГОНЕЗАВИСИМУЮ ПАМЯТЬ
Регистры доступа к энергонезависимой памяти (EEPROM) расположены в пространстве ввода/вывода. Время записи лежитв диапазоне 2.5-4 mS и зависит от напряжения питания. Это самотактируемая функция которая, однако, позволяет пользователю определить, можно ли записывать следующий байт. Для определения возможности записи в EEPROM можно использовать специальное прерывание по готовности EEPROM. Инициированная запись в EEPROM заканчивается даже при возникновении условия сброса. Для защиты от нежелательной записи в EEPROM необходимо следовать некоторым правилам, которые будут рассмотрены ниже, при описании управляющего регистра энергонезависимой памяти. При записи или чтении EEPROM процессор приостанавливается на 2 машинных цикла до начала выполнения следующей команды. При чтении из EEPROM процессор приостанавливается на четыре машинных цикла перед тем как начнет выполняться следующая команда.
РЕГИСТР АДРЕСА EEPROM – EEAR
1Eh(3Eh) | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
EEAR7 | EEAR6 | EEAR5 | EEAR4 | EEAR3 | EEAR2 | EEAR1 | EEAR0 | |
R\W | R\W | R\W | R\W | R\W | R\W | R\W | R\W | |
Начальное значение | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Регистр EEAR задает адрес одного из 128/256 байт адресного пространства EEPROM. Байты данных адресуется линейно в диапазоне от 0 до 127/255. Начальное значение регистра EEAR неопределено, поэтому перед доступом к EEPROM в этот регистр должно быть записано требуемое число.
РЕГИСТР ДАННЫХ EEPROM – EEDR
1Dh(3Dh) | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
MSB | LSB | |||||||
R\W | R\W | R\W | R\W | R\W | R\W | R\W | R\W | |
Начальное значение | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Биты 7..0 - EEDR7..0 - Данные EEPROM. При записи регистр EEDR содержит данные, которые записываются в EEPROM по адресу в регистре EEAR. Для операции чтения в этот регистр читаются данные прочитанные из EEPROM по адресу заданному в регистре EEAR.
РЕГИСТР УПРАВЛЕНИЯ EEPROM - EECR
1Ch(3Ch) | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
EERIE | EEMWE | EEWE | EERE | |||||
R | R | R | R | R | R\W | R\W | R\W | |
Начальное значение | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Биты 7..4 - зарезервированы. В AT90S2333/4433 эти биты зарезервированы и всегда читаются как 0.
Бит 3 - EERIE - Разрешение прерывания по готовности EEPROM. Если установлены биты I в регистре SREG и EERIE, разрешается прерывание по готовности EEPROM. Это прерывание возникает непрерывно, если сброшен бит EEWE.
Бит 2 - EEMWE - Управление разрешением записи. Этот бит определяет, будут ли записаны данные при установке EEWE. Если бит EEMWE установлен, при установке EEWE данные записываются по выбранному адресу EEPROM. Если этот бит сброшен, установка EEWE не имеет эффекта. После программной установки этот бит сбрасывается аппаратно через четыре такта процессора.
Бит 1 - EEWE - Разрешение записи в EEPROM. Сигнал EEWE является стробом записи в EEPROM. После установки правильных адреса и данных для записи в EEPROM необходимо установить бит EEWE. При записи "1"