[an error occurred while processing this directive]
Два способа.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено rezident 26 июля 2005 г. 14:13
В ответ на: Ответ: меня вот что смущает как ловить паузу, ведь кроме этого и других задачь полно а делать на прерывании как то круто этож при 19200 надо как минимум 1920 раз в секунду прерваться, что тоже ресурс.? отправлено <font color=gray>barmer</font> 26 июля 2005 г. 13:12

1. зарядить свободный таймер на паузу в 3,5 символа. В прерывании от приемника UART переустанавливать таймер еще дальше на длительность в 3,5 символа. Как приема не будет, то по прерыванию таймера сообщать транспорту, что произошла пауза. А транспорт пусть сам думает чего с этим фактом делать.

2. использовать глобальные тики системы. Ведь все равно в системе есть какое-нибудь прерывание с частотой 10-200 раз в секунду по которому клава опрашивается, дребезг устраняется, инфа на дисплей выводится и пр. Вот в нем (прерывании) и определять паузу. В прерывании от приемника UART счетчик паузы сбрасывается при каждом вызове этого прерывания, а в глобальном прерывании счетчик увеличивается и идет слежение за его содержимым. Ну-ка, ну-ка, а была ли пауза? :) Тут конечно не совсем по ModBus-овски будет пауза отслеживаться (особенно на высоких скоростях передачи), но для унутренного применения с гарантированными паузами между приемом запроса и ответом вполне можно использовать такой способ.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru