Испытания в "железе" показали, что устройство работает чётко, без сбоев. Алгоритмы программы отрабатываются без нарушений.
Но в процессе испытаний выявился один момент, который бы хотелось "дошлифовать". А именно: по окончании работы поворотов одного канала "удлинитель поворотов" некоторое время (около 1-2 секунд) не запускается на другом канале. Довольно часто это востребовано при проезде перекрёстка: повернув, необходимо сразу перестроиться в соседний ряд. Я приложил график из Протеуса, где видно, как программа отрабатывает этот момент.
Полагаю, что это происходит в связи с выполнением требования:
"Вход определяет окончание пакета импульсов по, например, паузе между импульсами: более 1 секунды пауза и будет считаться окончанием пакета."
Как мне кажется, здесь 2 варианта решения:
1. Более простой: уменьшить время опознавания окончания пакета импульсов (как вариант считывать его из ЕЕПРОМ, предоставив пользователю самому прописывать наиболее подходящее значение).
2. Более сложный, так как потребует изменения алгоритма программы. А именно:
"Вход определяет окончание пакета импульсов по, например, паузе между импульсами: более 1 секунды пауза и будет считаться окончанием пакета.Однако, если за это время паузы появится сигнал в другом канале, немедленно в нём начать отработку "удлинителя поворотов".
Уважаемый Soir! Буду Вам крайне признателен за доработку программы по любому из вариантов, если есть такая возможность!
И ещё маленькая просьба, если возьмётесь за доработку. Получилось, что выход РВ2 (7 нога контроллера) остался незадействованный.Можно ли сделать так, чтобы при выполнении пункта 3 программы он дублировал выходы РВ0 и РВ1? Спасибо!