Pacifist писал(а):
Тогда даже для восьмибитного таймера можно контролировать длинну импульса (60 = 600 мкс, 120 = 1200мкс, 240 = 2400 мкс (стартовый), переполнение - конец посылки).
Каверзный вопрос насколько действительно
надо точно измерять.
В майлс протоколе длинна 0 и 1 0,6us и 1,2us у полигона 0,46us и 0,86us.
Если отмечать порог 0,7us, то будет чётко распознаватся 1 и 0 на любом протоколе. В моих опытах с запоминающим осцилографом помехи от солнца не давали импульсов длиннее 0,3..0,4 us. То есть однозначно можно всё что короче отсеивать как помехи. Пауза между импульсами при помехе тоже не бывает меньше 0,3us видимо тоже связано с постоянной времени АРУ микросхем ИК датчиков.
Таким образом получается если будет помеха, то она полностью и однозначно испортит бит длительностью (посылка +пауза) менее чем 0,3+0,3us. Пытатся отлавливать "игольчатые помехи" нет смысла(сам ранее пытался) для наших длительностей битов. Пакет будет принят с ошибкой и мы даже об этом неузнаем. Чтобы случайно не "удалить" жизнь при приёме неправильного пакета полигон добавил CRC, как позднее сделали LW. И думаю это правильно, от того что будет больше событий "пролетающая пуля" игра хуже не станет - пусть лучше целятся
Преамбула на слабом сигнале практически никогда не бывает объявленной длинны, всегда короче, и предназначена больше для настройки АРУ ИК датчиков. Более того длинная преамбула, даже вредна чуствительность ИК датчика падает в разы, после преамбулы 10us датчик не чует следующий затем импульс вообще
Пробовал делать вариант импульсной преамбулы (не для лазертага), дальность обнаружения луча получается больше.