ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ - ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

Программы, критичные ко времени

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

Первое что приходит в голову — это использование таймера и прерываний, но такой способ часто не дает необходимой точности для разрабатываемого приложения. Рассмотрим пример программы для чтения-записи последовательных данных со скоростью 9600 бод, которая реализуется микроконтроллером, имеющим длительность командного цикла 1,0 мкс. При иллюстрации некоторых возникающих проблем предположим, что все команды выполняются за один цикл, кроме команд переходов, которые занимают три цикла.

Скорость 9600 бод соответствует периоду времени 104,167 мкс. Это означает, что временной интервал для чтения и записи данных должен занимать точно 104 цикла (ошибка порядка 0,16%). Пусть для чтения данных (приема) используется программный код:

Go to Top