Интервальный таймер
Процессорная система включает таймер, который может быть использован для измерения различных временных интервалов.
Интервальный таймер представляет собой счетчик, в который загружается некоторое значение. Затем счетчик выполняет счет в убывающем порядке до нуля, используя тактовый сигнал частотой 50 МГц, вырабатываемый на плате DE2-70. Программный интерфейс таймера включает шесть 16-битных регистров, показанных на рис. 3.12.
Рис. 3.12 – Регистры интервального таймера
Регистр, доступный по адресу 0x10002000, является регистром состояния таймера. Регистр, доступный по адресу 0x10002004, представляет регистр управления таймером. Назначения битов этих регистров следующее.
Разряд TO (time out) сигнализирует о завершении интервала. Он устанавливается в 1, когда таймер досчитает до нулевой величины. Сигнал TO может быть сброшен посредством записи 0 в этот разряд.
Разряд RUN устанавливается в 1 и остается в этом состоянии все время, пока не завершится текущий интервал. Операция записи в регистр состояния таймера полуслова не оказывает влияния на разряд RUN.
Разряд ITO используется для формирования сигнала прерывания процессора Nios II, которое обсуждается в разделе 3.3.4.
Разряд CONT влияет на дальнейшее поведение таймера. Когда CONT установлен в 1, таймер после достижения нулевого значения вновь перезагрузит заданное начальное значение и продолжит счет вниз автоматически. Но если разряд CONT равен 0, то таймер остановится после того, как его счетчик досчитает до нулевой величины.
Разряды START и STOP могут быть использованы для того, чтобы стартовать или остановить операцию счета таймера, посредством записи 1 в соответствующий бит регистра управления.
Два 16-битных регистра с адресами 0x10002008 и 0x1000200С задают временной интервал таймера посредством задания начального значения для счетчика таймера. В процессорной системе «DE2-70 Media Computer» выполнены установки для таймера, соответствующие периоду 125 мс. Чтобы сформировать такой интервал, стартовая величина счетчика таймера определяется так: 50МГц*125мс=6.25*10^6.
Чтобы определить текущее состояние счетчика таймера, необходимо выполнить запись в регистр таймера по адресу 0x10002010. Эта операция приведет к тому, что текущее состояние 32-битного счетчика будет сохранено в двух 16-битных регистрах таймера по адресам 0x10002010 и 0x10002014. Затем эти регистры могут быть прочитаны процессором обычным образом.
Дата добавления: 2015-05-30; просмотров: 765;