[an error occurred while processing this directive]
|
Я использовал PDIUSBD12 с двойным буферированием.
Для того, чтобы не было наползания принимаемых данных, я поступал следующим образом.
Процедура обслуживания прерывания от PDIUSBD12 определяла факт получения пакета и инкрементировала счетчик пакетов. Чтение пакета не производилось. Основная программа "смотрела" на счетчик и если он больше нуля, считывала данные в буфер, уменьшала счетчик, и разрешала прием следующего пакета.
Таким образом двойное буферирование ускоряло обмен, но наползание не происходило.
Основная идея при работе по прерываниям, процедура прерывания только информирует основную программу о приходе пакета, а основная программа считывает данные и разрешает прием следующего пакета.