display.c 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. /**
  2. * @file Bikelight.c
  3. * @author Wang, Zhiyu(wangzy49@midea.com)
  4. * @brief light of ebike
  5. * @version 0.1
  6. * @date 2021-10-09
  7. *
  8. * @copyright Copyright (c) 2021
  9. *
  10. */
  11. /************************************************************************
  12. Beginning of File, do not put anything above here except notes
  13. Compiler Directives:
  14. *************************************************************************/
  15. #include "syspar.h"
  16. #include "typedefine.h"
  17. #include "display.h"
  18. /******************************
  19. *
  20. * Parameter
  21. *
  22. ******************************/
  23. DISPLAY_OUT display_stDisplayOut = DISPLAY_OUT_DEFAULT;
  24. static DISPLAY_COEF display_stDisplayCoef = DISPLAY_COEF_DEFAULT;
  25. /***************************************************************
  26. Function: bikelight_voSetBikeLightOn;
  27. Description: set bike light on
  28. Call by: functions in main loop;
  29. Input Variables: N/A
  30. Output/Return Variables: N/A
  31. Subroutine Call: N/A;
  32. Reference: N/A
  33. ****************************************************************/
  34. static void display_voSetDisplayOn(void)
  35. {
  36. if (display_stDisplayOut.DisplayState != DISPLAY_Error)
  37. {
  38. // GPIOC->ODR |= (1<<DISPLAY_EN_PORT); //gpioC 14 = On
  39. display_stDisplayOut.DisplayState = DISPLAY_On;
  40. }
  41. }
  42. /***************************************************************
  43. Function: bikelight_voSetBikeLightOff;
  44. Description: set bike off
  45. Call by: functions in main loop;
  46. Input Variables: N/A
  47. Output/Return Variables: N/A
  48. Subroutine Call: N/A;
  49. Reference: N/A
  50. ****************************************************************/
  51. static void display_voSetDisplayOff(void)
  52. {
  53. if (display_stDisplayOut.DisplayState != DISPLAY_Error)
  54. {
  55. // GPIOC->ODR &= ~(1<<DISPLAY_EN_PORT); //gpioC 14 = Off
  56. display_stDisplayOut.DisplayState = DISPLAY_Off;
  57. }
  58. }
  59. /***************************************************************
  60. Function: bikelight_voBikeLightInit;
  61. Description: bike light control initialization
  62. Call by: functions in main loop;
  63. Input Variables: N/A
  64. Output/Return Variables: N/A
  65. Subroutine Call: N/A;
  66. Reference: N/A
  67. ****************************************************************/
  68. void display_voGetDisplayError(UWORD DisplayVolPu)
  69. {
  70. if ((display_stDisplayOut.blDisplayErrorFlg != TRUE) &&
  71. (DisplayVolPu > display_stDisplayCoef.uwDisplayErrorVoltagePuUp || DisplayVolPu < display_stDisplayCoef.uwDisplayErrorVoltagePuDown))
  72. {
  73. display_stDisplayOut.uwDisplayErrorCnt++;
  74. if (display_stDisplayOut.uwDisplayErrorCnt == display_stDisplayCoef.uwDisplayErrorCnt)
  75. {
  76. // GPIOC->ODR &= ~(1<<DISPLAY_EN_PORT);
  77. display_stDisplayOut.DisplayState = DISPLAY_Error;
  78. display_stDisplayOut.blDisplayErrorFlg = TRUE;
  79. display_stDisplayOut.uwDisplayErrorCnt = 0;
  80. }
  81. }
  82. else
  83. {
  84. display_stDisplayOut.uwDisplayErrorCnt = 0;
  85. }
  86. if ((display_stDisplayOut.blDisplayErrorFlg == TRUE) &&
  87. (DisplayVolPu < display_stDisplayCoef.uwDisplayErrorVoltagePuUp && DisplayVolPu > display_stDisplayCoef.uwDisplayErrorVoltagePuDown))
  88. {
  89. display_stDisplayOut.uwDisplayRecoverCnt++;
  90. if (display_stDisplayOut.uwDisplayRecoverCnt == display_stDisplayCoef.uwDisplayRecoverCnt)
  91. {
  92. // GPIOC->ODR &= ~(1<<DISPLAY_EN_PORT);
  93. display_stDisplayOut.DisplayState = DISPLAY_Off;
  94. display_stDisplayOut.blDisplayErrorFlg = FALSE;
  95. display_stDisplayOut.uwDisplayRecoverCnt = 0;
  96. }
  97. }
  98. else
  99. {
  100. display_stDisplayOut.uwDisplayRecoverCnt = 0;
  101. }
  102. }
  103. /***************************************************************
  104. Function: bikelight_voBikeLightInit;
  105. Description: bike light control initialization
  106. Call by: functions in main loop;
  107. Input Variables: N/A
  108. Output/Return Variables: N/A
  109. Subroutine Call: N/A;
  110. Reference: N/A
  111. ****************************************************************/
  112. void display_voDisplayInit(void)
  113. {
  114. display_stDisplayOut.uwDisplayErrorCnt = 0;
  115. display_stDisplayOut.uwDisplayRecoverCnt = 0;
  116. display_stDisplayOut.DisplayState = DISPLAY_Off;
  117. display_stDisplayOut.blDisplayErrorFlg = FALSE;
  118. display_voDisplayControl(1);
  119. display_stDisplayCoef.uwDisplayErrorCnt = Display_POWER_ERROR_DETECT / Display_POWER_ERROR_TIMEUNIT;
  120. display_stDisplayCoef.uwDisplayRecoverCnt = Display_POWER_ERROR_RECOVER / Display_POWER_ERROR_TIMEUNIT;
  121. display_stDisplayCoef.uwDisplayErrorVoltagePuDown = ((ULONG)Display_POWER_ERROR_VOLTAGE_DOWN << 14) / VBASE;
  122. display_stDisplayCoef.uwDisplayErrorVoltagePuUp = ((ULONG)Display_POWER_ERROR_VOLTAGE_UP << 14) / VBASE;
  123. }
  124. /***************************************************************
  125. Function: bikelight_voBikeLightInit;
  126. Description: bike light control initialization
  127. Call by: functions in main loop;
  128. Input Variables: N/A
  129. Output/Return Variables: N/A
  130. Subroutine Call: N/A;
  131. Reference: N/A
  132. ****************************************************************/
  133. void display_voDisplayCoef(void)
  134. {
  135. display_stDisplayCoef.uwDisplayErrorCnt = Display_POWER_ERROR_DETECT / Display_POWER_ERROR_TIMEUNIT;
  136. display_stDisplayCoef.uwDisplayRecoverCnt = Display_POWER_ERROR_RECOVER / Display_POWER_ERROR_TIMEUNIT;
  137. display_stDisplayCoef.uwDisplayErrorVoltagePuDown = ((ULONG)Display_POWER_ERROR_VOLTAGE_DOWN << 14) / VBASE;
  138. display_stDisplayCoef.uwDisplayErrorVoltagePuUp = ((ULONG)Display_POWER_ERROR_VOLTAGE_UP << 14) / VBASE;
  139. }
  140. /***************************************************************
  141. Function: bikelight_voBikeLightInit;
  142. Description: bike light control initialization
  143. Call by: functions in main loop;
  144. Input Variables: N/A
  145. Output/Return Variables: N/A
  146. Subroutine Call: N/A;
  147. Reference: N/A
  148. ****************************************************************/
  149. void display_voDisplayControl(UWORD switchAction)
  150. {
  151. if (switchAction == 1)
  152. {
  153. display_voSetDisplayOn();
  154. }
  155. if (switchAction == 0)
  156. {
  157. display_voSetDisplayOff();
  158. }
  159. }
  160. /***************************************************************
  161. Function: bikelight_voBikeLightInit;
  162. Description: bike light control initialization
  163. Call by: functions in main loop;
  164. Input Variables: N/A
  165. Output/Return Variables: N/A
  166. Subroutine Call: N/A;
  167. Reference: N/A
  168. ****************************************************************/
  169. void display_voCommunication(void)
  170. {}
  171. /*************************************************************************
  172. Local Functions (N/A)
  173. *************************************************************************/
  174. /*************************************************************************
  175. End of this File (EOF)!
  176. Do not put anything after this part!
  177. *************************************************************************/