October 18 2017 12:24:51
Навигация
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации .

Забыли пароль?
Запросите новый здесь.
останова счетчика модуля PIT08
МОДУЛЬ ВНЕШНЕЙ МАГИСТРАЛИ

Текущий код счетчика сравнивается с кодом периода, который записан в двухбайтовом регистре PITMOD (PITMODH и PITMODL -старший и младший байты этого регистра). В момент равенства кодов устанавливается триггер переполнения счетчика, состояние которого индицируется битом ТОР в регистре управления модулем интервальных прерываний PSC. Если прерывания от модуля PIT08 разрешены (бит PIE=1), то установка флага переполнения ТОР в 1 вызывает генерацию запроса на прерывание в модуль системной интеграции SIM08.

Предусмотрена возможность пуска и останова счетчика модуля PIT08 под управлением программы (бит PSTOP в регистре управления таймером-счетчиком PSC). Кроме того, счетчик и программируемый делитель частоты могут быть одновременно сброшены посредством установки в 1 бита PRST в регистре PSC. При этом все триггеры счетчика установятся в 0, а программируемый делитель частоты будет настроен на режим единичного коэффициента деления частоты внутренней шины МК. Установка бита PRST в 1 не останавливает работу счетчика, с приходом очередного тактового импульса состояние счетчика станет равным $0001.

Полезный совет! Будьте внимательны: каждый сброс счетчика вызывает изменение тактовой частоты. Поэтому разработчики МК семейства НС08 советуют производить сброс счетчика модуля PIT08 в следующем порядке:

* Остановите счетчик (бит PSTOP=1).

* Выполните операцию сброса (бит PRST=1).

* Переинициализируйте биты PPS2...PPS0 регистра PSC, kotoрые определяют тактовую частоту.

* Разрешите счет счетчика (бит PSTOP=0).

Код счетчика модуля PIT08 в процессе счета может быть считан прикладной программой при обращении к регистрам текущего кода PCNTH и PCNTL. Операцию чтения обязательно проводите в следующем порядке: сначала регистр старшего байта текущего кода PCNTH, а затем регистр младшего байта текущего кода PCNTL. При обращении к регистру старшего байта код счетчика автоматически копируется в указанную регистровую пару. Поэтому, несмотря на то что операции чтения старшего и младшего байтов разнесены во времени, Вы прочитаете состояние счетчика в момент обращения к регистру старшего байта PCNTH. Такое решение предотвращает получение ложной информации, в случае если тактовая частота счетчика высока, и по этой причине состояния счетчика в моменты обращения к регистрам PCNTH и PCNTL различаются. Однако нельзя допускать ситуацию, при которой после прочтения старшего байта младший прочитан не будет. Повторное чтение старшего байта не сопровождается защелкиванием текущего кода счетчика в регистрах PCNTH и PCNTL.

Модуль таймера интервальных прерываний остается в активном состоянии при работе МК в режиме ожидания (Wait mode). Если прерывания от модуля разрешены, то переполнение счетчика модуля PIT08 переведет МК из режима ожидания в рабочий режим.

В режиме останова (Stop mode) модуль PIT08 находится в неактивном режиме. Команда STOP не оказывает влияния на состояние регистров модуля. При восстановлении рабочего режима МК модуль PIT08 также возвращается в активное состояние.

Для управления счетчиком модуля PIT08 предусмотрены пять регистров специальных функций (Табл. 3.108...3.113):

PSC         - регистр управления модулем интервальных прерываний.

PMODH - регистр периода счетчика модуля интервальных прерываний (старший байт).

PMODL - регистр периода счетчика модуля интервальных прерываний (младший байт).

PCNTH - регистр текущего значения счетчика модуля интервальных прерываний (старший байт).

PCNTL - регистр текущего значения счетчика модуля интервальных прерываний (младший байт).

Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.

Нет данных для оценки.

Время загрузки: 0.02 секунд 2,255,350 уникальных посетителей