Не... не приемлемо. Во первых железка собрана, во вторых там архитектура другая, пока нет времени, да и желания на изучение. Ну и самое главное , поскольку задача чисто спортивная, интересно выжать из минимального железа максимальные возможности. Так что вопросы только по алгоритму
Добавлено after 6 minutes 1 second:
Вот например главный цикл:
;циекл для задержки
ASM
MOVLW D'100' ;загружаем количество циклов
MOVWF _I
MMM
CLRWDT ;незабываем очищать сторожевой таймервдлинном цикле ASM
;канал 0
MOVF _I, W ;переменную цикла в W
XORWF _Serv_0, W ;маскируем переменной,если 0,совпало
BTFSC STATUS, Z ;пропускаем следующую если не совпало
BCF GPIO, 0 ;завершим импульс
;канал 1
MOVF _I, W ;переменную цикла в W
XORWF _Serv_1, W ;маскируем переменной,если 0 то совпало
BTFSC STATUS, Z ;пропускаем следующую еслине совпало
BCF GPIO, 1 ;завершим импульс
;канал 2
MOVF _I, W ;переменную цикла в W
XORWF _Serv_2, W ;маскируем переменной,если 0 то совпало
BTFSC STATUS, Z ;пропускаем следующую еслине совпало
BCF GPIO, 2 ;завершим импульс
;канал 3
MOVF _I, W ;переменную цикла в W
XORWF _Serv_3, W ;маскируем переменной,если 0 то совпало
BTFSC STATUS, Z ;пропускаем следующую еслине совпало
BCF GPIO, 5 ;завершим импульс
DECFSZ _I,F
GOTO MMM
ENDASM
Установки каждой машинки сравниваются с переменной цикла, на сравнение каждой 4 команды. Что занимает много времени. Вот если бы удалось сократить... можно повысить разрешение установки