Синхронизация работы программ внешним сигналом прерывания
Пример
Рассмотрим измерительный канал с микроконтроллером (МК).
Один из возможных алгоритмов обработки — фильтрация:
.
Время выполнения алгоритма Та можно найти, если знать время выполнения каждой команды этого алгоритма:
Говорят, что программа выполняется в реальном масштабе времени, если .
Очевидно, что тактовая частота МК , должна существенно превосходить частоту дискретизации , . Ориентировочно .
В математической логике доказывается, что алгоритм любой сложности может быть реализован с использованием простейших арифметических операций (+,-,*,/), а также операций сдвига и пересылки. Причем вычисление одного отсчета выходной последовательности осуществляется за конечное число шагов. Однако это не означает практическую пригодность алгоритма. Важнейшим фактором является время выполнения. Пусть время вычисления одного выходного отсчета составляет секунды. Если это отсчет речевого сигнала, то написанная нами процедура бесполезна. Если это отсчет температуры окружающей среды от датчика температуры, то наша процедура с лихвой удовлетворит любого метеоролога.
Таким образом, определяющим свойством процедуры является ее способность вычислить выходной отсчет за реальное время.
Период дискретизации обычно задается с помощью прерываний.
Синхронизация прерыванием от внешнего сигнала может осуществляться посредством подключения ко входу INT0 импульсного сигнала нужной частоты. Пусть или шаг дискретизации . При тактовой частоте МК машинный цикл составляет 1 мкс. Следовательно, за один интервал дискретизации может быть выполнено приблизительно .