[an error occurred while processing this directive]
|
Логика работы глюка:
Программа под DOS (работает с портами по книге Фроловых), при запуске
настраивает COM-порт на 9600, посылает 0, после чего в цикле происходит следующее:
жду 1 секунду (время для АЦ преобразования), посылаю 1, принимаю 2 байта.
Программа контроллера делает следующее - по приему нуля запускает АЦ преобразование,
по приему 1 - считывает результаты преобразования и передает 2 байта результата
(между передачами байта ждет USR.5=1) и запускает новую серию АЦ преобразования.
Контроллер AVR 2313 подсоединен к RS-232 через MAX232 3-мя проводами.
Глюк заключается в следующем:
Выключаю контроллер, перезагружаю компьютер, включаю контроллер, запускаю программу -
все работает
После этого выхожу из проги, выключаю контроллер, включаю контроллер, запускаю прогу -
принимает в первой паре байт сначала некоторое число (был и 0, и 255), после чего первый байт
результата АЦ преобразования (и в дальнейших принимаемых парах байтов этот сдвиг сохраняется)
т.е. вместо 61,4;61,5;61,4;61,5;61,5 принимается 0,61;5,61;4,61;5,61;4,61;5,61;5,61; и т.д.
После этого перезагружаю компьютер (не выключая контроллер), запускаю программу - опять все OK!
Под Виндами все нормально работает...
Если кто-то сталкивался с похожей проблемой - подскажите, пожалуйста, как ее обойти.
E-mail: info@telesys.ru