Sterling 0 17 февраля, 2019 Опубликовано 17 февраля, 2019 · Жалоба Здравствуйте. При передаче трех байт на компьютер приходит только последний. В отладке, когда программа выполняется по шагам, все нормально, но при самостоятельной работе первые два байта пропадают. Возникло подозрение, что при записи в регистр DR флаг TC, равно как и TXE, сбрасываются не сразу, и данные в DR затираются сначала вторым байтом, а затем и третьим. Мои догадки верны? Если перед проверкой флага при передаче вставлять NOP-ы или пустые циклы, то как много? Есть ли вариант без костылей передавать? Частота камня 32Мгц, скорость передачи 19200. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 14 17 февраля, 2019 Опубликовано 17 февраля, 2019 · Жалоба Перед записью в DR надо проверять флаг TXE. Он сбрасывается сразу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sterling 0 17 февраля, 2019 Опубликовано 17 февраля, 2019 · Жалоба Разобрался. Я просто забыл скобочки в условии while, извините, что отвлек по пустяку. Но оставил проверку по TXE, так вроде чуть быстрее будет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться