J'ai l'impression que c'est standard:
Ils doivent être du style:

Et entre 2 crans on avance de 4 pas. C'est simplement qu'en tournant à la main on progresse de 4 pas en 4 pas et que pour les crans, les 2 intes sont ouvert.
Si il n'y avait pas de rebonds, après un front descendant de A, on a A=0, ce n'est donc pas la peine de vérifier que A=0. Si il y a du rebond, A peut repasser à 1 après le front descendant, mais pas B qui a changé avant. Cela donnerait:
- Interruption sur A flanc descendant (pin mise à la masse, entre les crans)
- lecture de B
- Si B à 0: ++
- Si B à 1: --
Si on mesure le temps entre un front descendant de A et un front descendant de B, on aura deux valeurs différentes en fonction du sens. Dans le sens CW on mesure 1/4 cran, dans l'autre on a 3/4 crans.
On peut mesurer le temps entre deux fronts descendant de A (la fonction d'interruption sur front descendant de A est déjà présente pour calculer la position). On peut aussi mesure le temps entre un front descendant de A et un changement de B. Mais rien ne garanti que cela fait exactement un quart de cran.
Bien entendu, il faut pour cela supprimer les rebonds, par exemple par un condensateur aux bornes de l'interrupteur (pour la vitesse). Sinon, il faudrait par exemple une fois vu le front descendant de A, attendre que B ne change d'état avant de reprendre en compte un nouveau front descendant de A.