Paso 4: Software teoría de la operación
Sabemos que el patrón de AB código gris repite cada cuatro posiciones así que si hacemos el trabajo de rutina para las transiciones entre las cuatro posiciones a trabajar para todos los demás. Note que en uno cuatro posición ciclo, hay cuatro bordes. Un flanco ascendente y un flanco descendente de la entrada, así como la B de entrada. El microprocesador se interrumpirá cada vez que hay una arista que significa que el microcontrolador se interrumpirá cualquier momento que al girar la perilla. Como resultado, el ISR debe figura que forma la perilla se gira. Para ayudarnos a encontrar la manera de hacer esto, pasamos a la forma de onda para la rotación en sentido horario.
Note que cualquier A tiempo tiene un borde, su valor nueva es siempre diferente de la de B. Cuando la perilla va desde posición 1 a 2, una transición de lógica 0 a lógica 1. B sigue siendo 0 para esta transición y no coincide con el nuevo valor de la A. Cuando la perilla de posición 3 y 4, A tiene un flanco descendente mientras que B permanece en lógica 1. Observe otra vez, que el B y el nuevo valor de la A son diferentes. Derecho ahora, podemos ver que cualquier momento A causa de la interrupción durante la rotación en sentido horario, su nuevo valor es diferente de la de B. Vamos a ver B a ver que pasa. B tiene un flanco ascendente cuando el interruptor de las transiciones desde la posición 2 a 3. Aquí, el nuevo valor de B es igual a A. mirar en el borde restante pasado de rotación a la derecha, B tiene un flanco descendente de posición 4-5. (Posición 5 es igual a la posición 1). El nuevo valor de B es igual a una aquí también! Ahora podemos hacer algunas deducciones. Si A causa de la interrupción y el nuevo valor de la A es diferente de la de B, la rotación es hacia la derecha. Además, si B causa la interrupción y el nuevo valor de B es la misma como A, entonces la rotación era hacia la derecha.
Veamos rápidamente el caso de la rotación en sentido antihorario. Al igual que rotación a derecha, rotación a la izquierda hará que cuatro interrupciones en un ciclo: dos para la entrada A y dos para la entrada B. entrada A tienen un borde de levantamiento cuando la perilla se mueve de posición 4 a 3 y un flanco descendente en movimiento de posición 2 a 1. Cuando la perilla se mueve desde la posición 4 a 3, el nuevo valor de la A es el mismo que el valor de B. aviso que cuando una se mueve desde la posición 2 a 1 su nuevo valor es el mismo que el de B así. Ahora, podemos ver cuando A causa de la interrupción y su nuevo valor coincide con que b la rotación hacia la izquierda. Rápidamente, veremos en la entrada B para verificar todo. B hará una interrupción cuando la perilla se mueve desde la posición 5 (que es igual a 1) 4 y cuando la perilla se mueve desde la posición 3 a 2. En ambos casos, el nuevo valor de B no coincide con el valor existente de que es el opuesto de los casos cuando B provoca la interrupción para el giro a la derecha. Esto es una buena noticia. Todo chequea como debe.
En Resumen, si una causa la interrupción y su nuevo valor no coincide con el valor de B o B causa la interrupción y el nuevo valor de B coincide con el valor de la A sabemos hubo rotación en sentido horario. Podemos comprobar los otros casos de rotación a la izquierda en software o podemos suponer que porque no era giro a la derecha es hacia la izquierda. Mi rutina simplemente hizo la Asunción.