Programación de codificación rotativa de microcontrolador.
La imagen adjunta es un diagrama de forma de onda de la salida del interruptor del codificador. Se puede ver que cuando se produce la rotación en cualquier dirección, la forma de onda de A o B cambiará de nivel cuando el nivel del otro lado sea estable. No sé ustedes si el microcontrolador admite interrupción de cambio de nivel.
El siguiente es el controlador de interrupciones que utilicé para detectar el interruptor de codificación del microcontrolador PIC. Espero que pueda ser una referencia para usted. if(RAIE&&RAIF)//Detección de indicador de interrupción{
unsigned?char?port_temp1,port_temp2;
port_temp1=PORTA;?//Leer parámetros del puerto
port_temp2 =PORTC;
if(port_temp2&0x04)
{?//Detectar el valor de un puerto
if(port_temp1&0x10)?//Detectar el valor del otro puerto Valor
{key_flags|=0x30;}?//Girar en el sentido de las agujas del reloj
else
{key_flags|=0x10;}?//Girar en el sentido contrario a las agujas del reloj
}
else
{;}?//Forma de onda anormal, sin operación
asm("movf?_PORTA,w ") ;?/?/?Borrar el indicador de interrupción
RAIF=0 }