Главная  Микроконтроллеры 

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [ 15 ] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93]

ный по фазе сигнал, выводимый на вывод РВЗ(ОС1). Таймер/счетчик 1 работает как реверсивный счетчик, считающий от О до конечного значения (табл. 2.9). При достижении конечного значения счетчик начинает считать в обратную сторону до нуля, после чего рабочий цикл повторяется. Когда значение счетчика совпадает с 8, 9 или 10 младшими битами регистра OCR1A, вывод PDl(OCl) устанавлива-f ется или сбрасывается в соответствии с установками битов СОМ1А1 и СОМ 1 АО в регистре TCCR1 (табл. 2.10).

Таблица 2.9. Конечное значение таймера и частота ШИМ

Разрешение ШИМ

Конечное значение таймера

ЧааотаШИМ

Вбитое

$00F(255)

Ftcl/510

9 битов

$01F(511)

Ftcl/1022

10 битов

$03F(1023)

Ftcl/2046

В режиме ШИМ при записи в регистр OCR1A 10 младших битов передаются во временный регистр и переписываются только при достижении таймером/счетчиком конечного значения. При этом устраняется появление несимметричных импульсов (дрожания), которые неизбежны при асинхронной записи OCR1A.

Таблица 2.10. Установка режима совпадения при работе ШИМ

С0М1А1

СОМ1А0

Влияние на вывод 0С1

Не подключен

Не подключен

Очищается при совпадении, для возрастания счетчика и сбрасывается для уменьшения (неинвертирующий ШИМ)

Очищается при совпадении, для уменьшения счетчика и сбрасывается для возрастания (инвертирующий ШИМ)



Если OCR1A содержит значение $0000 или конечное значение (ТОР), вывод ОС1 остается в том состоянии, которое определяется установками СОМ1А1 и СОМ 1 АО. Это показано в табл. 2.11.

Таблица 2.11. Выход ШИМ для OCR = $0000 или ТОР

С0М1А1

СОМ1А0

CCR1A

Вывод 0С1

$0000

Низкий

Высокий

$0000

Высокий

Низкий

В режиме ШИМ флаг переполнения таймера 1 (TOV1) устанавливается, когда счетчик изменяет направление счета в точке $0000. Прерывание по переполнению таймера I работает как при нормальном режиме работы таймера/счетчика, т. е. оно выполняется, если установлен флаг ТОVI и разрешены соответствующие прерывания. То же самое касается флага совпадения и прерывания по совпадению.

Сторожевой таймер

Сторожевой таймер работает от отдельного встроенного генератора, работающего на частоте 1 МГц (это типовое значение частоты для питания 5 В). Управляя предварительным делителем сторожевого таймера, можно задавать интервал сброса таймера от 16 до 2048 мс. Команда WDR сбрасывает сторожевой таймер. Для работы сторожевого таймера можно выбрать одно из восьми значений частоты, что позволяет в широких пределах изменять время между исполнением команды WDR и сбросом процессора. При отработке периода работы сторожевого таймера, если не поступила команда WDR, AT90S2313 сбрасывается, выполнение программы продолжается с вектора сброса.

Для предотвращения нежелательного отключения сторожевого таймера, для его запрещения должна выполняться определенная последовательность, которая описана при рассмотрении регистра WDTCR.



Бит 76543210

$21 ($41) I - I - I - wDTOE WDE I WDP2 WDP1 WDP0 WDTCR

Чт./эап. R R R ВЛ¥ ВЛ¥ НЛЛ/ ВЛ¥ RW

Нач. знач. 00000000

Рнс. 2.35. Регистр управления сторожевым таймером - WDTCR

Биты 7...5 - В AT90S2313 зарезервированы и всегда читаются как 0.

Бит 4 - WDTOE - разрешение выключения сторожевого таймера. При очистке бита WDE этот бит должен быть установлен, иначе работа сторожевого таймера не прекращается. Через четыре такта после установки этого бита он аппаратно сбрасывается.

Бит 3 - WDE - разрешение сторожевого таймера. Если бит установлен, работа сторожевого таймера разрешена, если бит сброшен - запрещена. Сброс бита производится только в том случае, если бит WDTOE установлен в 1.

Биты 2...0 - WDP2...0 - биты предварительного делителя сторожевого таймера. Если работа сторожевого таймера разрешена, эти биты определяют предварительный коэффициент деления для сторожевого таймера. В табл. 2.12 приведены различные значения установок предварительного делителя и соответствующие им временные интервалы при напряжении питания Vcc = 5 В.

Для запрещения включенного сторожевого таймера должна исполняться следующая процедура:

1. Одной командой записать 1 в WDTOE и WDE. Единица в WDE должна записываться даже в том случае, если этот бит был установлен перед началом процедуры остановки таймера.

2. В течение следующих четырех тактов процессора необходимо записать в WDE логический О, при этом работа сторожевого таймера запрещается. - г......

Таблица 2.12. Установки предварительного делителя сторожевого таймера

WDP2

WDP1

WDPO

Период времени, мс

WDP2

WDP1

WDPO

Период времени, мс

1024

2048



[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [ 15 ] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93]

0.0016