Дело в том, что выход из подпрограммы только после подсчета заданного количества импульсов. А этот подсчет происходит правильно только после первого вызова. При втором вызове счетчик постоянно сбрасывается не досчитывая одного импульса. И выхода из подпрограммы не происходит.