hidromotic

Conmutador_PIC

May 6th, 2020
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.29 KB | None | 0 0
  1. /*
  2.  * File:   demo2.c
  3.  * Author: Alejo
  4.  *
  5.  * Created on 6 de mayo de 2020, 16:13
  6.  */
  7. // Blink --> Activar la salida RD1 un cierto tiempo y desactivar RD1 otro tiempo
  8. // Conmutador: Invertir el estado de la salida salida, por cada flanco ascendente en la entrada.
  9.  
  10.  
  11.  
  12. #include "config.h" //-->  https://pastebin.com/iCVtqpfB
  13. //config.c --> https://pastebin.com/KRXRaxR8
  14.  
  15. #define CONFIGURAR_LED_TEST     TRISD1=0
  16. #define ENCENDER_LED_TEST       LD1=1
  17. #define APAGAR_LED_TEST         LD1=0
  18.  
  19.  
  20. //#define ACTIVAR_SALIDA       LATD |= 0b00000010       //Poner en alto el bit 0 (RD0)
  21. //#define DESACTIVAR_SALIDA    LATD &= ~0b00000010       //Poner en bajo el bit 0 (RD0)
  22.  
  23. //#define ACTIVAR_SALIDA      LATDbits.LD1=1
  24. //#define DESACTIVAR_SALIDA   LATDbits.LD1=0
  25.  
  26. //Para interactuar con la SALIDA, utilizar:
  27. #define CONFIGURAR_SALIDA   TRISB7=0
  28. #define ACTIVAR_SALIDA      LB7=1
  29. #define DESACTIVAR_SALIDA   LB7=0
  30. #define INVERTIR_SALIDA     LB7 = !LB7
  31.  
  32. //Para interactuar con la ENTRADA, utilizar:
  33. #define CONFIGURAR_ENTRADA  TRISA0=1
  34. #define ENTRADA_ACTIVADA    RA0
  35. //---------------------------------------------------------------------
  36. void BlinkSincronico(void)
  37.     {
  38.     static unsigned long centiseg_ant=0;
  39.     const unsigned char tpo_espera=5;
  40.     static bit salida_activada=0;
  41.    
  42.     //Actviar la salida, esperar un tiempo, desactivar la salida, esperar un tiempo
  43.    
  44.     if(centiseg - centiseg_ant < tpo_espera) return;
  45.     centiseg_ant= centiseg;
  46.    
  47.     salida_activada = !salida_activada;
  48.    
  49.     if(salida_activada) ENCENDER_LED_TEST;
  50.     else                APAGAR_LED_TEST;
  51.     }
  52. //---------------------------------------------------------------------
  53. void Conmutador(void)
  54.     {
  55.     static bit entrada_activada_ant=0;
  56.     //Invertir el estado de la salida salida,
  57.     //por cada flanco ascendente en la entrada (CAMBIO DE BAJO A ALTO)
  58.     if(ENTRADA_ACTIVADA == entrada_activada_ant) return;
  59.     entrada_activada_ant= ENTRADA_ACTIVADA;
  60.    
  61.     if(ENTRADA_ACTIVADA)
  62.         INVERTIR_SALIDA;
  63.  
  64.     }
  65. //---------------------------------------------------------------------
  66. void main(void)
  67.     {
  68.     setup();
  69.     CONFIGURAR_LED_TEST;
  70.     CONFIGURAR_SALIDA;
  71.     CONFIGURAR_ENTRADA;
  72.  
  73.     while(1)
  74.         {
  75.         BlinkSincronico();
  76.         Conmutador();
  77.         }
  78.     return;
  79.     }
Add Comment
Please, Sign In to add comment