Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4_Taimernaja_podsist_obshchee_ADuC.doc
Скачиваний:
1
Добавлен:
18.09.2019
Размер:
1.44 Mб
Скачать

Сравнение с уставкой

Эта техника предполагает следующую последовательность действий (которую можно реализовать программно):

  1. вычислить величину, соответствующую приращению содержимого таймера за требуемый интервал времени (она равна: U=T/).

  2. в начале интервала прочитать текущее содержимое таймера t1;

  3. вычислить и запомнить в переменной значение U+ t1;

  4. периодически читать текущее содержимое таймера ti, пока не выполнится tiU+ t1. Выполнение условия говорит об истечении интервала времени T. После этого можно

  5. выполнить требуемое действие (например, изменить управляющее объектом воздействие).

Этот метод имеет систематическую составляющую ошибки, определяемую длительностью выполнения операций (чтение_таймера + проверка_условия). Если указанная последовательность действий выполняется программно, то: а) процессор целиком занят в цикле «чтение_таймера – проверка условия; б) указанная систематическая ошибка не очень мала.

Величина ошибки может быть уменьшена, если операция сравнения ti><(t1+U)mod2n выполняется аппаратно. Для этого в состав таймерного канала добавляют регистр уставки, в который следует записать вычисленное значение t1+U, а также устройство сравнения кодов. При равенстве (изменяющегося) содержимого счетчика таймера и (неизменного) содержимого регистра уставки, компаратор:

а) устанавливает флаг, состояние которого можно анализировать программно;

б) может быть, вызывает запрос аппаратного прерывания;

в) формирует электрический сигнал, который в том или ином виде выводится на внешний контакт микроконтроллера, и который можно использовать для формирования воздействия на объект.

Такую аппаратную реализацию канала таймера формирования интервала времени называют каналом генерации событий (по английски Output-Compare OC).

Загрузка значения и сравнение с нулем (использование сигнала переполнения).

Для использования этой техники необходимо иметь доступ к таймеру по записи. Следует вычислить и записать в счетчик таймера такое значение, чтобы по истечении требуемого интервала времени содержимое таймера достигло значения переполнения. Содержимое таймера при счете входной частоты, в конце концов достигнет своего предельного значения («все единицы» при счете на сложение, либо «все нули» при счете на вычитание), после чего произойдет «переполнение». Счетчик таймера устроен так, что факт переполнения выявляется аппаратно, по сигналу переполнения устанавливается флаг переполнения таймера – триггер, который доступен программно и может быть прочитан и проанализирован.

В зависимости от аппаратной реализации, переполнение таймера может (по желанию программиста) инициировать в системе различные действия. Наиболее часто встречается возможность вызвать по переполнению запрос прерывания. Это позволяет программисту поместить в соответствующий обработчик прерывания команды, выполняющие определенные действия по истечении заранее заданного интервала времени.

Еще одно действие, которое может автоматически выполняться по переполнению таймера это загрузка в счетчик заранее заданного значения (см. следующий подраздел).

По выявленному факту переполнения таймера могут происходить различные события, но всегда имеется возможность установить факт переполнения программно, анализируя флаг переполнения. Примеры других действий, которые могут произойти при переполнении счетчика таймера, можно посмотреть в описании микросистемы ADuC70xx.

Замечания:

  1. Если счетчик таймера доступен по записи, то моменты записи в таймер и изменения содержимого под действием входной частоты аппаратно разнесены.

  2. Для формирования заданного интервала времени необходимо в нужный момент произвести запись в таймерный счетчик (программа как-то должна этот момент выявить!).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]