Электроприводы с системами числового программного управления. Иванов А.К - 109 стр.

UptoLike

Составители: 

Рубрика: 

108
ка не возникнет совпадение со значением OCRnA или ICRn, а затем счетчик
(TCNTn) сбрасывается.
Рис. 4.20. Временная диаграмма для режима СТС
По достижении верхнего предела счета может генерироваться прерыва-
ние с помощью флагов OCFnA или ICFn, соответствующим используемым ре-
гистрам для задания верхнего предела счета. Если прерывание разрешено, то
процедура обработки прерывания может использоваться для обновления верх-
него предела счета. Однако задание значения вершины счета, близкого к значе-
нию нижнего предела счета, когда счетчик
работает без предделения или с ма-
лым значением предделения, необходимо выполнять с особой осторожностью,
т. к. в режиме СТС нет двойной буферизации. Если значение, записанное в
OCRnA или ICRn, меньше текущего значения TCNTn, то сброс счетчика по ус-
ловию совпадения наступит, когда он достигнет максимального значения
(0xFFFF), затем перейдет в исходное состояние 0x0000 и
достигнет нового зна-
чения OCRnA или ICRn. Во многих случаях возникновение такой ситуации не
желательно. В качестве альтернативы может выступить режим быстрой ШИМ,
где регистр OCRnA определяет верхний предел счета (WGMn3-0 = 0b1111), т.к.
в этом случае OCRnA имеет двойную буферизацию.
Для генерации сигнала в режиме CTC выход OCnA может использоваться
для изменения логического уровня при каждом совпадении, для
чего необхо-
димо задать режим переключения (COMnA1, COMnA0 = 0b01). Значение OCnA
будет присутствовать на выводе порта, только если для данного вывода задано
выходное направление. Максимальная частота генерируемого сигнала равна
fOC0 = fclk_I/O/2, если OCRnA = 0x0000. Для других значений OCRn частоту
генерируемого сигнала можно определить по формуле:
)1(2
/_
OCRnAN
f
f
OIclk
OCnA
+
= ,
где переменная N задает коэффициент деления предделителя (1, 8, 32, 64,
128, 256 или 1024).
Так же, как и для нормального режима работы, флаг TOV0 устанавлива-
ется на том же такте таймера, когда его значение изменяется с 0xFFFF на
0x0000.