bikelight.h 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. /**
  2. * @file bikelight.h
  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. #ifndef BIKELIGHT_H
  16. #define BIKELIGHT_H
  17. #include "api.h"
  18. #include "board_config.h"
  19. #ifdef BIKELIGHT_
  20. #define EXTERNBIKE
  21. #else
  22. #define EXTERNBIKE extern
  23. #endif
  24. //---------------------------------------
  25. /* 前灯控制IO on/off */
  26. #define IO_FORWARDLED_ON() iGpio_Write(HW_GPIO_FLIG_EN_PIN,ApiGpio_HighLevel)//PC15
  27. #define IO_FORWARDLED_OFF() iGpio_Write(HW_GPIO_FLIG_EN_PIN,ApiGpio_LowLevel) //PC15
  28. #define IO_FORWARDLED_12V_ENABLE() iGpio_Write(HW_GPIO_FLIG_6V_12V_EN_PIN,ApiGpio_HighLevel)//PC13
  29. #define IO_FORWARDLED_12V_DISABLE() iGpio_Write(HW_GPIO_FLIG_6V_12V_EN_PIN,ApiGpio_LowLevel)//PC13
  30. /* 后灯控制IO on/off */
  31. #define IO_BACKLED_ON() iGpio_Write(HW_GPIO_BLIG_EN_PIN,ApiGpio_HighLevel)//PC8
  32. #define IO_BACKLED_OFF() iGpio_Write(HW_GPIO_BLIG_EN_PIN,ApiGpio_LowLevel) //PC8
  33. #define IO_BACKLED_12V_ENABLE() iGpio_Write(HW_GPIO_BLIG_6V_12V_EN_PIN,ApiGpio_HighLevel)//PC7
  34. #define IO_BACKLED_12V_DISABLE() iGpio_Write(HW_GPIO_BLIG_6V_12V_EN_PIN,ApiGpio_LowLevel)//PC7
  35. //---------------------------------------
  36. #define BikeLedAddCycle 8 //亮尾灯周期
  37. #define BikeLedAddDuty 4 //亮尾灯占空比
  38. #define BikeLedFlickerHZ 5 //亮尾闪烁频率
  39. #define BikeLedFlickerCycle 1000/BikeLedFlickerHZ //亮尾灯周期
  40. #define BikeLedFlickerDuty BikeLedFlickerCycle/2 //亮尾灯占比
  41. //#define BikeLedOverSpedHZ 3 //亮尾闪烁频率
  42. #define BikeLedOverSpedCycle 3000 //周期
  43. #define BikeLedOverSpedDuty 500 //超速15KM/H亮尾灯占比
  44. #define BikeLedOverSpeedMax 150 //基本单位0.1km/h
  45. #define BikeLedOverSpeedMin 140 //基本单位0.1km/h
  46. //---------------------------------------------------------
  47. #define LIGHT_ERR_VOLTAGE_MAX 70 // 0.1v
  48. #define LIGHT_ERR_VOLTAGE_MIN 50 // 0.1v
  49. #define LIGHT_OFFERR_VOLTAGE 10 // 0.1v
  50. #define LEDERRTIME 20 //LED灯电路检测错误次数
  51. #define LEDRISETIME 20 //上升沿时间 1ms单位
  52. #define LEDFALLTIME 1500 //下降沿时间 1ms单位
  53. typedef enum
  54. {
  55. one_byte = 0,
  56. two_byte = 1,
  57. Three_byte = 2,
  58. four_byte = 3,
  59. five_byte = 4,
  60. six_byte = 5
  61. } LED_TYPE_STR;
  62. typedef struct
  63. {
  64. UBYTE ubBike_keyLedSta; // 开关灯临时状态
  65. UWORD uwLedAddcnt;
  66. } BIKELED_STR;
  67. typedef struct
  68. {
  69. UWORD LedOnVoltMax; // 开灯时上限电压
  70. UWORD LedOnVoltMin; //开灯时下限电压
  71. BOOL blBike_LedOnErr; // 开灯电路故障状态
  72. UWORD blBike_LedOnErrCnt; // 开灯电路滤波
  73. UWORD blBike_LedOnErrDCnt; // 开灯电路滤波
  74. UWORD blBike_LedOnErrAddNO; // 开灯电路错误次数累加值
  75. UWORD LedOffVoltMax; // 关灯时上限电压
  76. BOOL blBike_LedOffErr; // 关灯电路故障状态
  77. UWORD blBike_LedOffErrCnt; // 关灯电路滤波
  78. UWORD blBike_LedOffErrDCnt; // 关灯电路滤波
  79. UWORD blBike_LedOffErrAddNO; // 光灯电路错误次数累加值
  80. } BIKELEDCHECK_STR;
  81. typedef struct
  82. {
  83. BOOL blBike_ForwardLedSta; // 前灯开关状态
  84. BOOL blBike_BackLedSta; //尾灯开关状态
  85. BOOL blBike_ForwardLedDetErr; // 前灯电路
  86. BOOL blBike_BackLedDetErr; // 尾灯电路
  87. } BIKELED_Global_STR;
  88. EXTERNBIKE BIKELED_Global_STR BikeLedGloFun;
  89. //---------------------------------------
  90. /****************************************
  91. *
  92. * Definitions & Macros
  93. *
  94. ****************************************/
  95. #define BIKELIGHT_OUT_DEFAULT \
  96. { \
  97. 0, 0, 0, FALSE, LIGHT_Off \
  98. } // Default value of BIKELIGHT_OUT
  99. #define BIKELIGHT_COEF_DEFAULT \
  100. { \
  101. 0, 0, 0, 0, 0 \
  102. }
  103. #define LIGHT_POWER_ERROR_VOLTAGE_UP 70 // 0.1v
  104. #define LIGHT_POWER_ERROR_VOLTAGE_DOWN 50 // 0.1v
  105. #define LIGHT_POWER_ERROR_DETECT 2000 // ms
  106. #define LIGHT_POWER_ERROR_RECOVER 2000 // ms
  107. #define LIGHT_POWER_ERROR_SHUT 2000 // ms
  108. #define LIGHT_POWER_ERROR_TIMEUNIT 200 // ms
  109. /***************************************
  110. *
  111. * Type Definations
  112. *
  113. ***************************************/
  114. /**
  115. * @brief Light state
  116. *
  117. */
  118. typedef enum
  119. {
  120. LIGHT_Off = 0,
  121. LIGHT_On = 1,
  122. LIGHT_Error = 2,
  123. LIGHT_Shut = 3
  124. } LIGHT_STATE;
  125. /**
  126. * @brief BikeLight out
  127. *
  128. */
  129. typedef struct
  130. {
  131. UWORD uwBikeLightErrorCnt; // Cnt of detect GPIO low voltage
  132. UWORD uwBikeLightRecoverCnt; // Cnt of detect GPIO high voltage
  133. UWORD uwBikeLightShutCnt; // Cnt of detect GPIO high voltage
  134. BOOL blBikeLightErrorFlg; // flag of light error
  135. LIGHT_STATE LightState; // state of light
  136. } BIKELIGHT_OUT;
  137. typedef struct
  138. {
  139. UWORD uwBikeLightErrorCnt; // Cnt of detect GPIO low voltage
  140. UWORD uwBikeLightRecoverCnt; // Cnt of detect GPIO high voltage
  141. UWORD uwBikeLightShutCnt; // Cnt of detect GPIO high voltage
  142. UWORD uwBikeLightErrorVoltagePuDown; // flag of light error
  143. UWORD uwBikeLightErrorVoltagePuUp; // flag of light error
  144. } BIKELIGHT_COEF;
  145. /****************************************
  146. *
  147. * Exported variable
  148. *
  149. ****************************************/
  150. /***************************************
  151. *
  152. * Function Definations
  153. *
  154. ***************************************/
  155. void bikelight_voBikeLightInit(void); // interface function
  156. void bikelight_voBikeLightCoef(UWORD volt);
  157. void bikelight_voGetBikeLightError(UWORD LightPowerVolPu,BOOL Ledsta,BIKELEDCHECK_STR *p);
  158. //void bikelight_voGetBikeLightError(UWORD LightPowerVolPu);
  159. void bikelight_voBikeLightControl(UWORD switchAction, BOOL Brate_Sta,UBYTE BackLedMode);
  160. //void bikelight_voBikeLightControl(UWORD switchAction); // interface function
  161. /************************************************************************
  162. Flag Define (N/A)
  163. *************************************************************************/
  164. #endif
  165. /************************************************************************
  166. Copyright (c) 2018 Welling Motor Technology(Shanghai) Co. Ltd.
  167. All rights reserved.
  168. *************************************************************************
  169. End of this File (EOF):
  170. Do not put anything after this part!
  171. *************************************************************************/