No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 

79 líneas
1.8 KiB

  1. //#include <proc/p32mx440f256h.h>
  2. #include "ChaletPowerRelay.h"
  3. #include "BoardCfg.h"
  4. #include "timer.h"
  5. #define PIN_ACTIVE 1
  6. #define PIN_INACTIVE 0
  7. bool PowerRelayState;
  8. void InitChaletPowerRelay()
  9. {
  10. POWER_RELAY_ON_PIN = PIN_INACTIVE;
  11. POWER_RELAY_OFF_PIN = PIN_INACTIVE;
  12. PowerRelayState = CHALET_POWER_RELAY_UNKNOWN_STATE;
  13. TimerStop(CHALET_POWER_RELAY_COIL_TIMER);
  14. }
  15. void ChaletPowerRelayTick()
  16. {
  17. if(CHALET_12V_PRESENCE_PIN == CHALET_12V_POWER_STATE_ON)
  18. {
  19. if(PowerRelayState == CHALET_POWER_RELAY_OFF_STATE)
  20. {
  21. printf("Inverter turned ON\n");
  22. }
  23. PowerRelayState = CHALET_POWER_RELAY_ON_STATE;
  24. }
  25. else
  26. {
  27. if(PowerRelayState == CHALET_POWER_RELAY_ON_STATE)
  28. {
  29. printf("Inverter turned OFF\n");
  30. }
  31. PowerRelayState = CHALET_POWER_RELAY_OFF_STATE;
  32. }
  33. if(IsTimerRunning(CHALET_POWER_RELAY_COIL_TIMER) == true)
  34. {
  35. if(IsTimerExpired(CHALET_POWER_RELAY_COIL_TIMER))
  36. {
  37. POWER_RELAY_ON_PIN = PIN_INACTIVE;
  38. POWER_RELAY_OFF_PIN = PIN_INACTIVE;
  39. TimerStop(CHALET_POWER_RELAY_COIL_TIMER);
  40. }
  41. }
  42. if(IsTimerExpired(CHALET_POWER_RELAY_AUTOTURNOFF_TIMER))
  43. {
  44. ChaletPowerRelayTurnOff();
  45. }
  46. }
  47. void ChaletPowerRelayKickTimer()
  48. {
  49. TimerStartSeconds(CHALET_POWER_RELAY_AUTOTURNOFF_TIMER,CHALET_OFFLINE_POWER_RELAY_RESET_TIMEOUT);
  50. }
  51. bool ChaletPowerRelayTurnOn()
  52. {
  53. POWER_RELAY_ON_PIN = PIN_ACTIVE;
  54. TimerStart(CHALET_POWER_RELAY_COIL_TIMER,CHALET_POWER_RELAY_COIL_TIMEOUT);
  55. // PowerRelayState = CHALET_POWER_RELAY_ON_STATE;
  56. return true;
  57. }
  58. bool ChaletPowerRelayTurnOff()
  59. {
  60. POWER_RELAY_OFF_PIN = PIN_ACTIVE;
  61. TimerStart(CHALET_POWER_RELAY_COIL_TIMER,CHALET_POWER_RELAY_COIL_TIMEOUT);
  62. // PowerRelayState = CHALET_POWER_RELAY_OFF_STATE;
  63. return true;
  64. }
  65. char GetChaletPowerRelayState()
  66. {
  67. return (char)PowerRelayState;
  68. }