Advertisement
Electgpl

PIC - Encoder Rotativo v1

Feb 16th, 2016
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.90 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. int auxiliar=0, entradaAnterior=0;              //Variables de trabajo
  7. unsigned int encoder=0;                         //Variable sin signo de encoder
  8. void main(){                                    //Función principal
  9.    while(true){                                 //Bucle infinito
  10.       auxiliar=entradaA;                        //Mueve A a auxiliar
  11.       if((entradaAnterior==0)&&(auxiliar==1)){  //Si Anterior 0 y Auxiliar 1
  12.          if(entradaB==0)                        //Si B esta activo
  13.             encoder--;                          //Decremento el valor de encoder
  14.          else                                   //Caso contrario
  15.             encoder++;                          //Incrementa encoder
  16.          printf("SALIDA %3u\r",encoder);        //Muestra el valor de encoder
  17.       }
  18.       entradaAnterior=auxiliar;                 //Intercambio de Variables
  19.    }
  20. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement