Не совсем понятно назначение выходной переменной counter в блоке PRU_ABZ_ENCODER. Если это просто счет импульсов, то оно без надобности. Вполне достаточно детектора истинного нуля и регистра показаний.
Вам без надобности, а кому-то может и пригодиться.
Как-никак, а ABZ энкодер не только вам может оказаться полезным.