Despues de estar mucho tiempo ausente por el foro, decidi volver a postear. Esta vez para que alguien se apiade de mi y me explique por favor como usar los encoders para mi controlador midi.
En principio entendi que se trataban de 2 ondas cuadradas desfasadas 90º, hasta ahi comprendo bien…
Mi problema es el siguiente, quiero usar uno de esos encoders para q mande eventos de NOTE ON, es decir, por ejemplo cuando giran a la derecha que mande la nota “C” o a la izquierda la nota “F”, el lenguaje q estoy usando es el peor de todos -------->>BASIC “BUUUUU!!!”
Cuantos pines del micro necesitaria para que cumpla esa funcion? ----->TRES?
Alguien podria ayudarme con algun codigo por favor?? O al menos, con un poco de teoria para tratar de comprender…GRACIAS!!!
AsÃ, de forma rápida te puedo decir que los encoders, utilizan el código Gray que no es más que binario pero alterando el orden para que solo cambie un bit cada vez, por eso leyendo el estado de dos entradas sabes si hubo un movimiento y en que sentido, además de saber si se produjo un salto.
El link que ha puesto tangopic está muy bien explicado y además con el algoritmo de funcionamiento en Basic. Yo hasta ahora no he tenido que utilizarlos pero a ver si saco tiempo y lo hago en ensamblador.
yo en el midiscratch tengo conectada una de las entradas a la interrupcion externa PB0 configurada para saltar en cada flanco ascendente. cada vez que salta, el programa comprueba en que estado se encuentra la otra patilla del encoder, si es 1 va en una direccion, si es cero en la otra
ej:
adelante__XX__XX_
_XX__XX__
atras _XX__XX_
__XX__XX
tambien se puede hacer testeando las entradas, cada vez que la entrada A cambia de 0 a 1 se lee el estado de la entrada B y se conoce en que sentido ha girado. tienes que hacerlo guardando algun bit de posicion, yo asigno una posicion de ram por cada encoder, y uso los bits 6-0 para guardar el valor del encoder 0-127 y el bit 7 para indicar si cambio de estado