Средства реализации заданных
временных параметров встраиваемых систем
155
Флаг переполнения таймера-счетчика (TOVn) устанавливается тем же
тактом, когда произошло обновление регистров значением из буферного
регистра (на нижнем пределе счета). Если для задания верхнего предела
используется регистр OCRnA или ICRn, то по достижении счетчиком
верхнего предела устанавливается флаг OCnA или ICFn, соответственно.
Флаги прерывания могут использоваться для генерации прерывания при
достижении счетчиком верхнего или нижнего
предела.
При изменении верхнего предела необходимо следить, чтобы новое
значение было больше или равно значениям во всех регистрах порога
сравнения. В противном случае, если задано значение верхнего предела
меньше любого из значений регистров порога сравнения, совпадение между
TCNTn и OCRnx никогда не наступит.
На рис. 3.21 показано, что в отличие от режима ШИМ
ФК,
генерируемый выходной сигнал симметричен на всех периодах. Поскольку,
регистры OCRnx обновляются на нижнем пределе счета, то длительности
прямого и обратного счетов всегда равны. В результате выходные импульсы
имеют симметричную форму, а, следовательно, и откорректированную
частоту.
Использование регистра ICRn для задания верхнего предела
рекомендуется, если значение верхнего предела является константой. В этом
случае также освобождается регистр OCRnA для широтно-импульсной
модуляции импульсов на выводе OCnA. Однако если требуется
динамическое изменение частоты ШИМ за счет изменения верхнего предела,
то для задания верхнего предела рекомендуется использовать регистр
OCRnA за счет наличия у него двойной буферизации.
В режиме ШИМ ФЧК блоки сравнения позволяют генерировать ШИМ-
импульсы на выводе OCnx.
Если COMnx1:0 = 0b10, то задается
неинвертирующий ШИМ выход, а, если COMnx1:0=0b11, то
инвертирующий. Значение OCnx будет присутствовать на соответствующем
выводе порта только в случае, если для него задано выходное направление.