Странный пример, как будто от старого CPM2.
В сетапе контроллера один вход настроен на прерывание, но это прерывание не задействовано в проге никак, хотя в нём нужно было нолик в счётчик прописать.
CTBL достаточно включить на один цикл проги, зачем кучу циклов по входу гонять?
Очень похожая тема недавно была:
viewtopic.php?f=4&t=3850&p=20449#p20449чтобы не гадать сработало прерывание или нет, добавьте в него инкемент чего либо и наблюдайте.
Не сталкивался с тем что CTBL на одну позицию не всегда срабатывало у CP1L, хотя в старину, CPM2 иногда пропускал. Если импульсы с энкодера реально сыпятся с дикой скоростью посчитайте, не превышает ли частота импульсов возможности контроллера.
Если действительно нашли глюк контроллера на своей скорости, вызывайте CTBL для диапазона.
------------
Скорее всего у Вас импульс на 0.05 очень короткий, и прога его не видит.