Paso 4: El código: leyendo el codificador rotatorio.
Si te fijas bien en el esquema, verás que al girar a la derecha, que b siempre es bajo en los bordes de levantamiento A. Girando a izquierda B siempre será alto en los bordes de levantamiento A.
Así que si fije A INT0 y configurarlo para provocar una interrupción en el flanco ascendente, entonces al que debemos hacer en la rutina de interrupción es verificar si B es 0 o 1 para saber la dirección. Dependiendo de la dirección, un contador es incrementado o disminuido y este contador puede utilizarse luego en el bucle principal para establecer los valores de una serie de variables. Es realmente tan simple como eso!
en el código de Bascom:
Dim cuenta como entero
Un Pind.2 de Alias ' (INT0)
B Alias Pind.4
configuración A como entrada
configuración B como entrada
Set B
Restablecer cuenta
config Int0 = aumento
De Int0 Getencoder
Habilitar interrupciones
Habilitar la Int0
hacer
' bucle principal aquí
lazo
GetEncoder:
waitus 250
Si A = 1 entonces
Si B = 0 entonces Incr cuenta cuenta de Decr otra cosa
End If
Volver
El botón fuction de codificador rotatorio es simplemente una interrupción que se activa al conectar el en para INT1. En la rutina de juego, todos kindst de cosas puede hacer dependiendo de lo que le gustaría pasar. En este caso se utiliza un bucle por el menú, a aceptar los valores y a escribir en la EEPROM del atmega8.