на самом деле у меня 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