bikelight.h 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  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 "typedefine.h"
  18. typedef _Bool BOOL;
  19. #ifdef BIKELIGHT_
  20. #define EXTERNBIKE
  21. #else
  22. #define EXTERNBIKE extern
  23. #endif
  24. #define BIKELEDOPEN_F_ENABLE 1 //BAT灯使能,0-失能,1-使能
  25. #define BIKELEDOPEN_R_ENABLE 0 //尾灯使能,0-失能,1-使能
  26. //---------------------------------------
  27. #define BikeLedAddCycle 15//12 //亮尾灯周期
  28. #define BikeLedAddDuty 5//5 //亮尾灯占空比
  29. #define BikeLedFlickerHZ 5 //亮尾闪烁频率 1秒5次
  30. #define BikeLedFlickerCycle 1000/BikeLedFlickerHZ //亮尾灯周期
  31. #define BikeLedFlickerDuty BikeLedFlickerCycle/2 //亮尾灯占比
  32. //#define BikeLedOverSpedHZ 3 //亮尾闪烁频率
  33. #define BikeLedOverSpedCycle 3000 //周期
  34. #define BikeLedOverSpedDuty 500 //超速15KM/H亮尾灯占比
  35. #define BikeLedOverSpeedMax 150 //基本单位0.1km/h
  36. #define BikeLedOverSpeedMin 140 //基本单位0.1km/h
  37. //---------------------------------------------------------
  38. //启动LED的起始PWM时
  39. #define LIGHT_FIRSTPWM 144 //64us,max=2304 第一个PWM 前灯
  40. #define LIGHTBLR_FIRSTPWM 346 //64us,max=2304 第一个PWM 尾灯,左右灯
  41. #define LIGHT_SECTPWM 2304//691 //64us,max=2304 第二个PWM
  42. #define LIGHT_MAXPWM 2304//691 //64us,max=2304 第二个PWM
  43. //--F-LED 步进值 最大400
  44. #define LIGHT_F_STEPPWM 28
  45. #define LIGHT_F_STEPMAXPWM 921 //50% max
  46. typedef enum
  47. {
  48. F_PWM_byte = 1,
  49. B_PWM_byte = 2,
  50. L_PWM_byte = 3,
  51. R_PWM_byte = 4,
  52. } LED_PWM_STR;
  53. typedef struct
  54. {
  55. UWORD uwBike_LedOffErrCnt; // 过流恢复计时
  56. UWORD uwBike_LedVolt; //灯压选择
  57. UWORD uwBike_LedMode; //选择功能,
  58. UWORD uwBike_OpenPreTime; //开灯时刻开始计时
  59. UWORD uwBike_OpenLedEn; //开灯瞬间处理标志
  60. UWORD uwBikeLight_PWM; // LED PWM
  61. UWORD uwBike_LedCheckLowTime; //检测过流IO出现低电平次数
  62. UWORD uwBike_keyLedHighSta; // 开关灯临时状态
  63. UWORD uwBike_keyLedLowSta; // 开关灯临时状态
  64. UWORD uwLedAddcnt;//Led功能翻转计时
  65. UWORD uwLeddelaycnt;//Led延时开灯
  66. UWORD uwBike_LedFun; //模式功能选择 0-PWM电池电压有保护,1-前后灯分别控PWM6/12V无保护,2-DCDC输出
  67. UWORD uwBike_OpenLedStep; //开灯顺序
  68. BOOL blBike_LedSta; //开关LED输入状态
  69. BOOL blBike_LedCurErr; // 灯电路过流
  70. BOOL blBike_ForwardLedStart; // 允许开灯启动,总开关
  71. } BIKELEDCHECK_STR;
  72. //EXTERNBIKE BIKELED_Global_STR BikeLedGloFun;
  73. EXTERNBIKE BIKELEDCHECK_STR BikeLedCheck_F;//前灯参数
  74. //EXTERNBIKE BIKELEDCHECK_STR BikeLedCheck_B;//尾灯参数
  75. //EXTERNBIKE BIKELEDCHECK_STR BikeLedCheck_L;//左灯参数
  76. //EXTERNBIKE BIKELEDCHECK_STR BikeLedCheck_R;//右灯参数
  77. EXTERNBIKE BIKELEDCHECK_STR BikeLedCheck_DC_1;//DC12V
  78. EXTERNBIKE BIKELEDCHECK_STR BikeLedCheck_DC_2;//DC12V
  79. //---------------------------------------
  80. /****************************************
  81. *
  82. * Definitions & Macros
  83. *
  84. ****************************************/
  85. /***************************************
  86. *
  87. * Type Definations
  88. *
  89. ***************************************/
  90. /**
  91. * @brief Light state
  92. *
  93. */
  94. typedef enum
  95. {
  96. LIGHT_Off = 0,
  97. LIGHT_On = 1,
  98. LIGHT_Error = 2,
  99. LIGHT_Shut = 3
  100. } LIGHT_STATE;
  101. /***************************************
  102. *
  103. * Function Definations
  104. *
  105. ***************************************/
  106. void bikelight_voBikeLightInit(BIKELEDCHECK_STR *LedPoit);; // interface function
  107. void bikelight_voBikeLightCoef(UWORD volt);
  108. void bikelight_voGetBikeLightError(UWORD LightPowerVolPu,BOOL Ledsta,BIKELEDCHECK_STR *p);
  109. void bikelight_voBikeLightControl(UWORD switchAction, BOOL Brate_Sta);
  110. /************************************************************************
  111. Flag Define (N/A)
  112. *************************************************************************/
  113. #endif
  114. /************************************************************************
  115. Copyright (c) 2018 Welling Motor Technology(Shanghai) Co. Ltd.
  116. All rights reserved.
  117. *************************************************************************
  118. End of this File (EOF):
  119. Do not put anything after this part!
  120. *************************************************************************/