Частотомер


Частотомер - часть 2


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

Алгоритм работы программы частотомера показан на рис. 1, а расширенный алгоритм работы блоков: проверка кнопок, пуск измерения, досчитывание показан на рис. 1.1, 1.2, 1.3 соответственно.

После пуска и инициализации регистров микроконтроллера программа переходит к поразрядному выводу значений регистров  индикации. После загрузки значения любого регистра индикации в порт выдерживается пауза в 2 миллисекунды. В каждом цикле отработки паузы декрементируется регистр паузы и проверяется значение флага 1 секунды. Если флаг равен единице, т.е. 1 секунда прошла, выполняется проверка состояния кнопок (рис. 1.1). При этом сбрасывается флаг 1 секунды. Далее проверяется состояние кнопки «Пуск». Если кнопка нажата, то проверяется флаг пуска. Если флаг пуска включен, т.е. пуск уже был, то он сбрасывается (запрещается счет). Если флаг пуска нулевой, то он устанавливается в единицу (разрешается счет). В этом цикле отработки паузы проверка кнопок прекращается. В следующих циклах, если кнопка «Пуск» не нажата, проверяется состояние кнопки времени измерения. Если кнопка времени измерения нажата, то изменяется флаг времени измерения на противоположный (1 сек. или 10 сек.).

После проверки кнопок проверяется значение флага пуска. Если частотомер в состоянии пуска, то проверяется флаг измерения. Если флаг единичный, то начался отсчет времени измерения, и программа переходит к пуску измерения (рис. 1.2). Но если пуск уже был выполнен и установлен флаг счета, то включение нового счета не производится. Если же счет не начат, то устанавливается флаг счета, обнуляются регистры досчета, разрешаются прерывания по переполнению TMR0 и открывается счетный вход. Счетный вход открывается установкой единицы на выходе RA5. От команды, открывающей счетный вход, и до команды, которая его закрывает, должно пройти время, равное времени измерения.


Начало  Назад  Вперед



Книжный магазин