|
Имею PIC16F877 в котором использую аппаратный UART в асинхронном режиме. На выходе сигналы Tx и RX поступают на драйвер RS-485 MAX3018.
Для переключения режима прием-передача используется RE0. Назовем его сигнал DIR.
Когда slave опознал что обратились к нему, пора передавать данные.
Вопрос вот в чем: как выработать сигнал DIR на передачу, когда устройство хочет ответить, ведь я только заношу данные в TXREG по перерыванию, и они сами сдвигаются и выталкиваются.
Получается, при записи любого байта в буфер передачи TXREG надо запускать внешний(внутренний) одновибратор и свободным таймером отсчитывать время на 10 импульсов (старт,8бит,стоп), держа в это время вывод DIR на передачу?
Не очень удобно, если выбирать скорость программно, то таймер DIR тоже надо менять.
Может как-то по-другому?
P.S. Спасибо всем ответившим на мой вопрос о синхронизации времени в PC и slave.
(в начале каждых новых суток надо подстраивать время,месяц.. в slave(s) )
Спасибо. encov@mail.ru
E-mail: info@telesys.ru