-
- да, я при меньше 3,5Т продолжаю приём. Если хотите меньше проблем - меняйте логику и делайте всё через регистры, а не пользовательскими функциями - koyodza(31.10.2011 12:20)
- Спасибо! Еще вопрос для общего развития: что я должен был бы делать при паузе 1.5T, если бы чётко соблюдал спецификацию? - Лeoнид Ивaнoвич(31.10.2011 12:26)
- Если больше t1.5 и меньше t3.5 то считать фрейм битым. - diper(31.10.2011 12:35)
- сбросить буфера, считать пакет бытым и даже не пытаться считать его CRC, инкрементировать счётчик битых пакетов - koyodza(31.10.2011 12:34)
- Похоже, что так. Теперь понятно. На диаграмме после паузы 1.5T переходим в другой цикл, где ждем оставшееся до 3.5T время. Если за это время приходит символ - пакет битый (NOK). Если символ не приходит - считаем CRC. Но это уже фактически после Лeoнид Ивaнoвич(12 знак., 31.10.2011 12:40)
- Не совсем так. Нужно пометить пакет битым и все равно дождаться конца фрейма по таймауту t3.5 Но имхо лучше вообще один таймаут заложить и не мучаться, а то бывает что байты бегут неравномерно и проще железке назначить вручную больший таймаут чем diper(25 знак., 31.10.2011 12:38)
- всё верно - koyodza(31.10.2011 13:29)
- Спасибо! Еще вопрос для общего развития: что я должен был бы делать при паузе 1.5T, если бы чётко соблюдал спецификацию? - Лeoнид Ивaнoвич(31.10.2011 12:26)
- да, я при меньше 3,5Т продолжаю приём. Если хотите меньше проблем - меняйте логику и делайте всё через регистры, а не пользовательскими функциями - koyodza(31.10.2011 12:20)