Собственно говоря хочется лишь уяснить некоторые детали которые в общем случае решаемы. Так что скажем интерес чисто академический. Дело вот в чем. В манах написано что после запрета на передачу передача продолжается если во время запрета в выходном буфере или сдвиговом регистре находятся непереданные данные. Решил я воспользоваться этим. Мальчишество конечно. Можно выключить и после передачи. Ну тут решил попробовать. Вдруг когда нибудь все в это упрется а так хоть опыт будет. В первом варианте все работало отлично. Не знаю может если б тестить дня 3 непрерывно что и всплыло бы. А так заработало потыркал все равно работает сбоев нет. Заказчик изменил условия. Переделал но эта часть оставалась неизменной. Запускаю. Ошибки. Причем ошибки явно наступают случайным образом. Начал разбираться все упирается в цикл где идет ожидание окончания передачи. В одних случаях флаг выставляется в других нет. Вероятность 50/50. Мне казалось что флаги выставляются в любом случае по наступлению события. Вопрос тогда а это событие наступило? Была передача или нет? Если была то почему флаг не стал. Если не было то почему не было. Ведь в буфере по любому есть непереданные данные.
Было бы интересно выслушать Ваши мнения
|