Electgpl

PIC - Encoder Rotativo v2

Feb 17th, 2016
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.89 KB | None | 0 0
  1. #include <16F883.h>
  2. #use delay(clock=4000000)
  3. #use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8, parity=N)
  4. #define entradaA input(PIN_A0)                  //Macro de entrada A
  5. #define entradaB input(PIN_A1)                  //Macro de entrada B
  6. unsigned int leeEncoder(){                      //Función del encoder
  7.    int auxiliar=0, entradaAnterior=0;           //Variables de trabajo
  8.    auxiliar=entradaA;                           //Mueve A a auxiliar
  9.    if((entradaAnterior==0)&&(auxiliar==1)){     //Si Anterior 0 y Auxiliar 1
  10.       if(entradaB==0)                           //Si B esta activo
  11.          encoder--;                             //Decremento el valor de encoder
  12.       else                                      //Caso contrario
  13.          encoder++;                             //Incrementa encoder
  14.    }
  15.    entradaAnterior=auxiliar;                    //Intercambio de Variables
  16. }
  17. void main(){                                    //Función principal
  18.    while(true){                                 //Bucle infinito
  19.       printf("SALIDA %3u\r",leeEncoder());      //Muestra el valor de encoder
  20.    }
  21. }
Advertisement
Add Comment
Please, Sign In to add comment