Люди, помогите кто может (есть сэнсеи для начинающего?). Писал прогу для принятия данных через COM. Передает один байт, а затем выдает ошибку передачи. Что может быть?
Типа терминала. Есть устройство, которое выдает цепочку байт, когда ей посылаешь определенное значение. Один раз это значение передается, а затем ошибка. Писал используя tasm 5. Писал под DOS. Под винду не требовалось.
Под DOS... В форуме уже проскакивали ссылки на этот ресурс, но всё же повторю: Примеры работы с последовательным портом на низком уровне Работа с COM портом через INT 14h Пример программы передачи строки на принтер по последовательному интерфейсу с использованием INT 14h
И старайся писать попонятнее. Устройство - оно. А кто такая она (ей посылаеь) ?! Должна выдаваться цепочка, а у тебя тут же написано, что передается значение один раз. Один байт из цепочки или один раз цепочка ?! Больше всего твоя ситуация похожа на переполнение буфера. На эти грабли все наступают. COM-порт - это устройство реального времени. Если в него передают со скоростью 9600 бод, то надо читать байты не медленнее чем 960 раз/секунду. Там правда буфер есть на 16 байт, но его включить надо.
valterg Один раз устройству управляющий байт передается, а в последующие попытки нет. Для принимаемой цепочки создаю буфер. Ошибка возникает при посылке 2-го управляющего байта.
А что за ошибка ?! Если комп старый, то мог еще наступить на такие грабли : канал после того как принял цепочку освобождается после приема остатка стопового сигнала ( 1.5 стоп), хотя готовность выдает раньше. Правда такое было только на COM-портах советского производства на СМ-3 - назывались платы АДС, но может у тебя тоже один из первых буржуйских чипов - там много глюков было.
Машина не советская. После передачи, которая не сотоялась, AH.7 = 1. Байт не передается. А какая именно ошибка не пойму . В разных источниках, которые я читал, по разному трактуются ошибки. Может опечатка. Какой источник верный не знаю.