Цитата:
|
Отображение должно быть ТОЛЬКО в свободное время процессора.
|
Позвольте частично не согласится с этим.
Конечно - все зависит от решаемой задачи,
Но в некоторых случаях, например частотных детекторах
необходима регистрация в реальном времени, без останова и ожидания.
В этом случае использование прерываний является оптимальным решением
позволяющим создать некоторую многозадачность. Так, например
при динамической индикации с использованием таймера Т0 ничего
не мешает в это же время считать таймеру Т1, почему бы не
воспользоваться этой возможностью?
Другое дело, что вопрос связан с предполагаемой некорректной работой PROTEUS
Но вполне возможно, что причина кроется в некорректной работе самой программы проекта.
Так, например, непонятно, для чего выставлять предделитель Т0-1024?
Даже при тактовой 8мГц, частота обновления знака для 4-х разрядов ~ 7.5 Гц.
И разумеется, будут мерцания.
Для примера привожу аналогичный проект.
Как вы можете заметить, ничего не мигает.
На индикаторе отображается длительность периода в микросекундах.
Разумеется, способ измерения частоты методом измерения периода имеет свои
ограничения. В первую очередь этот способ малопригоден для измерения высокочастотных сигналов, т.к. с увеличение частоты значительно снижается точность измерения.
И отлично подходит для измерения низкочастотных сигналов
Есть ограничения и самого примера это около 6.5 кГц,(при 1мГц) связанный с началом пропуска периодов.
Несколько поднять этот порог можно увеличением частоты и оптимизацией программы.
Зато нижний порог - 100Гц можно снизить увеличением разрядности индикатора и увеличением разрядности счетчика программным путем.