Electgpl

PIC - Funcion encoder rotativo con botón

Mar 10th, 2016
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.15 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 f_encoder(){                       //Funcion de llamada al encoder
  7.    int entradaAnterior=0;                       //Variable de intercambio
  8.    unsigned int encoder=0;                      //Variable sin signo de encoder
  9.    if((entradaAnterior==0)&&(entradaA==1)){     //Si Anterior 0 y A 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.       return(encoder);                          //Retorna valor
  15.    }
  16.    entradaAnterior=entradaA;                    //Intercambio de Variables 
  17. }
  18. void main(){                                    //Función principal
  19.    while(true){                                 //Bucle infinito
  20.       printf("SALIDA %3u\r",f_encoder());       //Muestra el valor de encoder
  21.    }
  22. }
Advertisement
Add Comment
Please, Sign In to add comment