Size: a a a

2021 July 29

AP

Alexander Polikushin in ru_ASUTP
источник

D

Dim in ru_ASUTP
я это понимаю
источник

D

Dim in ru_ASUTP
меня волнует только захват порта
источник

D

Dim in ru_ASUTP
дальше работаю только с ним и ни с какими другими
источник

D

Dim in ru_ASUTP
но опрашивая 3 порта поочередно, хватит времени что бы в буфере накопился полный байт?
источник

AP

Alexander Polikushin in ru_ASUTP
Только замер даст ответ. С одной из методик можно ознакомиться по ссылке выше
источник

D

Dim in ru_ASUTP
допустим не хватит
источник

D

Dim in ru_ASUTP
и прога будет крутиться в бесконечном цикле
источник

D

Dim in ru_ASUTP
можно из исходников библиотеки каким то образом вытащить флаг наличия стартового бита, что бы по нему ориентироваться в прослушке портов?
источник

D

Dim in ru_ASUTP
что б он успевал входить в процедуру по этому флагу
источник

AP

Alexander Polikushin in ru_ASUTP
Вам не флаг нужен, а прерывание изменения состояния пина. От него старт обработки. Определяем что это строб бит, а не мусор на линии и переходим к чтению в буфер.
источник

AP

Alexander Polikushin in ru_ASUTP
Придется переписать под себя, разобравшись в логике обработки soft uart
источник

AP

Alexander Polikushin in ru_ASUTP
Обработка строится на двух основных моментах: прерывание изменения состояние пина RX и расчет задержек (время передачи одного бита исходя из частоты МК и частоты uart и т.д.)
источник

AP

Alexander Polikushin in ru_ASUTP
Советую также ознакомиться с понятием IDLE
источник

D

Dim in ru_ASUTP
далее еще такой вопрос
источник

AP

Alexander Polikushin in ru_ASUTP
Флаг прерывания IDLE в интерфейсе UART выставляется в случае, если после стоп-бита последнего переданного символа на линии RX нет данных в течении времени приема одного символа. Флаг IDLE сбрасывается программно.
источник

D

Dim in ru_ASUTP
если я вхожу в процедуру и снова объявляю
port1.listen();
источник

AP

Alexander Polikushin in ru_ASUTP
Поможет определить конец посылки
источник

D

Dim in ru_ASUTP
я что-то теряю?
источник

AP

Alexander Polikushin in ru_ASUTP
Для вашей задачи вам придется отказаться от библиотеки и написать все с нуля
источник