Ansat писал(а):
2 LTagKirovLTagKirov писал(а):
вот вариант использованый мной, работает простым опросом с частотой от 2кгц(реже неработает), до 10..15КГц (быстрее нет смысла) Частота опроса фиксированная, по ней измеряются длительности импульсов пауз
PS. Прошивку себе уже написал
К сожалению пока немогу выложить исходники (писал на заказ), только кусочки
т.е. как я понял, общий принцип такой:
1.по спаду на ножке, идущей к TSOP, запускается таймер
2.каждые 100-400 мкс (в зависимости от настроек таймера) анализируется и записывается состояние этой ножки
3.обработка полученного пакета команды/пули (при отсутствии ошибок)
Вложение:
example.PNG
Прошу Вас, пояснить, при возможности: если в очередной момент опроса ножки произойдет смена состояния (на рисунке выше красные точки), то это решается:
- допуском/погрешностью?
- расчетом кратности периода опроса и первоначальным смещением?
Синяя точка - первый спад/запуск таймера
Спасибо.
Немного не так.
По спаду запускается таймер, который с каждым "тиком" увеличивает переменную - счетчик длительности сигнала низкого уровня (переменная обнуляется в прерывании, сгенерированным спадом).
Когда приходит фронт, мы сравниваем длительность низкоуровневого сигнала и с учетом погрешности делаем вывод, что это - старт бит, бит, соответствующий единице или соответствующий нулю или помеха.
Тут же обнуляем переменную счетчик длительности сигнала высокого уровня и таймер её так же увеличивает на 1 с каждым тиком.
С приходом следующего спада анализируем длительность высокоуровневого сигнала и проверяем с учетом погрешности, соответствует ли она длительности паузы между передаваемыми битами.
Затем снова обнуляем счетчик низкоуровневого и все по новой, до тех пор, пока не зафиксируем отсутствие спадов и фронтов некоторое время - то есть фиксируем таймаут.
Надеюсь не сильно путанно изложил?