на самом деле у меня 4 двигателя, я подумал может оставить на один пик два двигателя. И кроме подсчета, у меня в прерывании еще происходит сравнение в заданным числом,чтобы тормознуть двигатель по достижению необх. количества. Макс. время 25 мкс обработки одного прерывания
чтение чужих прог. крайне затруднительно, у меня в асс- ре
INTPR ; обработка прерывания RB7-RB4
movf portb,w
bcf intcon,rbif
movf portb,w
xorwf portbt,w
movwf temp
btfss temp,5
goto $+2
CALL INTPR5
btfss temp,4
goto $+2
CALL INTPR4
btfss temp,6
goto $+2
CALL INTPR6
btfss temp,7
GOTO $+2
CALL INTPR7
call comparehod ; сравнение с необх. количеством
movf portb,w
movwf portbt
return
INTPR7
banksel poz1
incfsz poz1,f
goto $+2
incf poz1+1,f
banksel temp
return
INTPR6
banksel poz2
incfsz poz2,f
goto $+2
incf poz2+1,f
banksel temp
return
INTPR5
banksel poz4
incfsz poz4,f
goto $+2
incf poz4+1,f
banksel temp
return
INTPR5
banksel poz3
incfsz poz3,f
goto $+2
incf poz3+1,f
banksel temp
return