Читать «Как проектировать электронные схемы» онлайн - страница 89

Клод Галле

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

Однако во всех случаях применяется принцип повторения (нередко многократного) одной или нескольких команд, задающих калиброванную базовую задержку. Таким образом, чтобы обеспечить ожидание в течение 20 мс, нужно 20 раз выполнить подпрограмму задержки на 1 мс или 200 раз повторить подпрограмму задержки на 100 мкс.

Многие процессоры содержат на кристалле таймер, обычно построенный на каскадном соединении делителей частоты. На его вход подается сигнал тактовой частоты. Управление таймером может включать разнообразные опции, например установку заданного начального значения, автоматический запуск по сигналу прерывания в конце счета или при подаче внешнего управляющего сигнала и др. Специальные функции таймера предназначены в основном для фиксации отрезков относительно большой длительности и не всегда просты в реализации. Поэтому разработчику часто приходится искать другие способы для осуществления нужных временных задержек.

В этих случаях очень важно иметь точные характеристики микропроцессора, чтобы знать длительность выполнения каждой из команд. Данные величины указываются в виде числа машинных циклов, равных, как правило, части периода тактового генератора. Так, для некоторого цикла в документации может быть указано время: tcycl = 2tosc. Это означает, что при рабочей частоте кварцевого генератора 2 МГц данный цикл будет длиться 1 мкс (2 х 0,5 мкс). Если команда Ida 48 выполняется за два цикла, она длится 2 мкс. Повторяя команду n раз, можно обеспечить временную задержку n х 2 мкс.

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

Команда пор (операция без какого-либо действия) обеспечивает дополнительную задержку (1 мкс) с целью получения нужного результата. Наконец, следует добавить, что для формирования некоторых нестандартных длительностей можно воздействовать на частоту кварцевого тактового генератора, которая лежит в основе всех расчетов времени задержки.

ФОРМИРОВАНИЕ СИГНАЛА СИНХРОНИЗАЦИИ

Иногда для синхронизации операций измерения или счета необходимо использовать внешнее задающее устройство. Обычно опорный сигнал подается на вход прерывания микропроцессора. При этом не всегда нужно выполнять прерывание, иногда можно обойтись операцией простого программного считывания. Достаточно дождаться изменения состояния на входе и убедиться в том, что счетчик в этот момент показывает заданное значение.

Электрическая сеть — довольно точный источник задающего сигнала. При ее использовании обычно удается исключить ошибки считывания, вызываемые внешними помехами. В регулирующих устройствах с широтно-импульсной модуляцией (см. главу 2, раздел «Широтно-импульсная модуляция») при наличии счетчика, синхронизированного с напряжением сети, можно управлять симистором в нужный момент без создания дополнительной схемы синхронизации.