Немного вспомню, как это делал на 6850...
1. Передача слова на внешнее устройство:
- Проверяем регистр статуса передачи. Если не пустой, значит передача предыдущего слова ещё не окончена - ждём в цикле. Если пустой, то записываем в регистр данных слово на передачу. По идее передача начинается сразу, как только слово помещено в регистр данных.
2. Приём слова с внешнего устройства:
- проверяем регистр статуса приёма. Если пуст, то нам ничего не поступило, можем заняться основной программой. Если полон, то считываем слово из регистра данных. Обнуляем регистр статуса приёма.
- проверяем полученный байт. Если это комбинация ctrl+C, то передаём управление прерыванию исполнения текущей программы, иначе просто принимаем байт (по крайней мере у меня для работы с Бейсиком это нужно).
Т.е. без проверки флагов никак. А вот для остановки внешнего устройства, если оно торопливое, а мы не успеваем обрабатывать, RxRDY как раз и нужен, в комп заводить его не надо кмк, а вывести сигналом RTS наружу
Почти та же фигня и с ЛСД, у многих есть сигнал BUSY, который показывает, что дисплей ещё не обработал символ. Вот и приходится метаться между этими двумя "неуспевающими"...




Ответить с цитированием