display.c 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  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 "mathtool.h"
  18. //#include "at32f421.h"//#include "stm32f10x.h"
  19. #include "display.h"
  20. /******************************
  21. *
  22. * Parameter
  23. *
  24. ******************************/
  25. DISPLAY_OUT display_stDisplayOut = DISPLAY_OUT_DEFAULT;
  26. static DISPLAY_COEF display_stDisplayCoef = DISPLAY_COEF_DEFAULT;
  27. /***************************************************************
  28. Function: bikelight_voSetBikeLightOn;
  29. Description: set bike light on
  30. Call by: functions in main loop;
  31. Input Variables: N/A
  32. Output/Return Variables: N/A
  33. Subroutine Call: N/A;
  34. Reference: N/A
  35. ****************************************************************/
  36. static void display_voSetDisplayOn(void)
  37. {
  38. if (display_stDisplayOut.DisplayState != DISPLAY_Error)
  39. {
  40. display_stDisplayOut.DisplayState = DISPLAY_On;
  41. }
  42. }
  43. /***************************************************************
  44. Function: bikelight_voSetBikeLightOff;
  45. Description: set bike off
  46. Call by: functions in main loop;
  47. Input Variables: N/A
  48. Output/Return Variables: N/A
  49. Subroutine Call: N/A;
  50. Reference: N/A
  51. ****************************************************************/
  52. static void display_voSetDisplayOff(void)
  53. {
  54. if (display_stDisplayOut.DisplayState != DISPLAY_Error)
  55. {
  56. display_stDisplayOut.DisplayState = DISPLAY_Off;
  57. }
  58. }
  59. /***************************************************************
  60. Function: display_voGetDisplayError;
  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. display_stDisplayOut.DisplayState = DISPLAY_Error;
  77. display_stDisplayOut.blDisplayErrorFlg = TRUE;
  78. display_stDisplayOut.uwDisplayErrorCnt = 0;
  79. }
  80. }
  81. else
  82. {
  83. display_stDisplayOut.uwDisplayErrorCnt = 0;
  84. }
  85. if ((display_stDisplayOut.blDisplayErrorFlg == TRUE) &&
  86. (DisplayVolPu < display_stDisplayCoef.uwDisplayErrorVoltagePuUp && DisplayVolPu > display_stDisplayCoef.uwDisplayErrorVoltagePuDown))
  87. {
  88. display_stDisplayOut.uwDisplayRecoverCnt++;
  89. if (display_stDisplayOut.uwDisplayRecoverCnt == display_stDisplayCoef.uwDisplayRecoverCnt)
  90. {
  91. display_stDisplayOut.DisplayState = DISPLAY_Off;
  92. display_stDisplayOut.blDisplayErrorFlg = FALSE;
  93. display_stDisplayOut.uwDisplayRecoverCnt = 0;
  94. }
  95. }
  96. else
  97. {
  98. display_stDisplayOut.uwDisplayRecoverCnt = 0;
  99. }
  100. }
  101. /***************************************************************
  102. Function: display_voDisplayInit;
  103. Description: bike light control initialization
  104. Call by: functions in main loop;
  105. Input Variables: N/A
  106. Output/Return Variables: N/A
  107. Subroutine Call: N/A;
  108. Reference: N/A
  109. ****************************************************************/
  110. void display_voDisplayInit(void)
  111. {
  112. display_stDisplayOut.uwDisplayErrorCnt = 0;
  113. display_stDisplayOut.uwDisplayRecoverCnt = 0;
  114. display_stDisplayOut.DisplayState = DISPLAY_Off;
  115. display_stDisplayOut.blDisplayErrorFlg = FALSE;
  116. display_voDisplayControl(1);
  117. display_stDisplayCoef.uwDisplayErrorCnt = Display_POWER_ERROR_DETECT / Display_POWER_ERROR_TIMEUNIT;
  118. display_stDisplayCoef.uwDisplayRecoverCnt = Display_POWER_ERROR_RECOVER / Display_POWER_ERROR_TIMEUNIT;
  119. display_stDisplayCoef.uwDisplayErrorVoltagePuDown = ((ULONG)Display_POWER_ERROR_VOLTAGE_DOWN << 14) / VBASE;
  120. display_stDisplayCoef.uwDisplayErrorVoltagePuUp = ((ULONG)Display_POWER_ERROR_VOLTAGE_UP << 14) / VBASE;
  121. }
  122. /***************************************************************
  123. Function: display_voDisplayCoef;
  124. Description: bike light control initialization
  125. Call by: functions in main loop;
  126. Input Variables: N/A
  127. Output/Return Variables: N/A
  128. Subroutine Call: N/A;
  129. Reference: N/A
  130. ****************************************************************/
  131. void display_voDisplayCoef(void)
  132. {
  133. display_stDisplayCoef.uwDisplayErrorCnt = Display_POWER_ERROR_DETECT / Display_POWER_ERROR_TIMEUNIT;
  134. display_stDisplayCoef.uwDisplayRecoverCnt = Display_POWER_ERROR_RECOVER / Display_POWER_ERROR_TIMEUNIT;
  135. display_stDisplayCoef.uwDisplayErrorVoltagePuDown = ((ULONG)Display_POWER_ERROR_VOLTAGE_DOWN << 14) / VBASE;
  136. display_stDisplayCoef.uwDisplayErrorVoltagePuUp = ((ULONG)Display_POWER_ERROR_VOLTAGE_UP << 14) / VBASE;
  137. }
  138. /***************************************************************
  139. Function: display_voDisplayControl;
  140. Description: bike light control initialization
  141. Call by: functions in main loop;
  142. Input Variables: N/A
  143. Output/Return Variables: N/A
  144. Subroutine Call: N/A;
  145. Reference: N/A
  146. ****************************************************************/
  147. void display_voDisplayControl(UWORD switchAction)
  148. {
  149. if (switchAction == 1)
  150. {
  151. display_voSetDisplayOn();
  152. }
  153. if (switchAction == 0)
  154. {
  155. display_voSetDisplayOff();
  156. }
  157. }
  158. /***************************************************************
  159. Function: display_voCommunication;
  160. Description: bike light control initialization
  161. Call by: functions in main loop;
  162. Input Variables: N/A
  163. Output/Return Variables: N/A
  164. Subroutine Call: N/A;
  165. Reference: N/A
  166. ****************************************************************/
  167. void display_voCommunication(void)
  168. {}
  169. /*************************************************************************
  170. Local Functions (N/A)
  171. *************************************************************************/
  172. /*************************************************************************
  173. End of this File (EOF)!
  174. Do not put anything after this part!
  175. *************************************************************************/