[an error occurred while processing this directive]
|
1. зарядить свободный таймер на паузу в 3,5 символа. В прерывании от приемника UART переустанавливать таймер еще дальше на длительность в 3,5 символа. Как приема не будет, то по прерыванию таймера сообщать транспорту, что произошла пауза. А транспорт пусть сам думает чего с этим фактом делать.
2. использовать глобальные тики системы. Ведь все равно в системе есть какое-нибудь прерывание с частотой 10-200 раз в секунду по которому клава опрашивается, дребезг устраняется, инфа на дисплей выводится и пр. Вот в нем (прерывании) и определять паузу. В прерывании от приемника UART счетчик паузы сбрасывается при каждом вызове этого прерывания, а в глобальном прерывании счетчик увеличивается и идет слежение за его содержимым. Ну-ка, ну-ка, а была ли пауза? :) Тут конечно не совсем по ModBus-овски будет пауза отслеживаться (особенно на высоких скоростях передачи), но для унутренного применения с гарантированными паузами между приемом запроса и ответом вполне можно использовать такой способ.
E-mail: info@telesys.ru