|
начало пакета определяется по нескольким перепадам в начале, это для синхронизации, а затем передача 3 полубит = 1 или 0 , это и есть начало пакета, см в коде внимательно.
На счет АВР, код должен легко переносится, он особо не привязан.
Логика слежующая:
есть два прерывания, по перепаду на ноге и по таймеру.
по перепаду определяем и запоминаем состояние и сбрасываем таймер.
по таймеру определяем окончание передачи если нет др способа.
по следующим перепадам проверяем состояние таймера и считаем сколько полубит прошло, если больше 2 то или ошибка или маркер если нужен.
если меньше или равно 2 то увеличивая счетчик полубит пишем принятое значение в буфер. писать или нет определяется по четности числа полубит.
E-mail: info@telesys.ru