Сообщение от
Петр Петрович
>так какие проблемы, если вы сейчас в непонятках, вместо законченного изделия поставили программный эмулятор и экспериментируйте на здоровье, чтоб выяснить кто же в конечном итоге виноват
В том то и дело, что уже на 99,99% понятно, что в крайне редких случаях (1-2 раза в день) информация о нажатой кнопке в входном массиве байт затирается следующей порцией данных (случайным образом меняющийся уровень принимаемого сигнала), которая начинается опять с нулевого элемента массива. Если бы данные просто клались после принятых ранее, я бы успел их быстренько вытащить и обработать без потерь. Можно, конечно, еще сократить время цикла - но это не гарантия. Судя по некоторым данным, между передачами промежуток в особо неблагоприятных случаях бывает не более 1 мс. А потом может быть окно и в десятки миллисекунд. Вообще, мне кажется буфер это насторлько фундаментальная вещь, что без него не работает ни один современный коммутатор Ethernet например. Конечно, там работа с буферами вообще высший пилотаж, она и определяет совершенство коммутатора в конечном итоге. Мой же случай - простейший. Но почему-то думается, что он не уникален. Если этого у других не было, не факт, что не будет. Понятно, что правильные протоколы позволяют нивелировать эти эффекты, но при возрастании нагрузки не контроллер могуть быть скажем так подобные "выбросы" глюков, которые не сразу и поймешь отчего.