bsp_led.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. #ifndef _BSP_LED_H_
  2. #define _BSP_LED_H_
  3. #define LED_SCAN_TIME 50 //单位ms
  4. ///请勿修改led_cfg_t结构体
  5. typedef struct {
  6. u8 redpat;
  7. u8 bluepat;
  8. u8 unit;
  9. u8 cycle;
  10. } led_cfg_t;
  11. ///请勿修改led_cb_t结构体
  12. typedef struct {
  13. volatile u8 rled_sta; //红灯 亮-灭控制
  14. volatile u8 bled_sta; //蓝灯 亮-灭控制
  15. u8 unit; //50ms单位 (范围:1~255)
  16. u8 period; //间隔周期 (范围:0~255)
  17. u16 circle; //一个周期(n-1)
  18. u16 cnt; //已运行
  19. u8 wait;
  20. //u8 cnt;
  21. //u8 bcnt;
  22. //u8 space_cnt;
  23. u8 flag;
  24. } led_cb_t;
  25. extern led_cb_t led_cb;
  26. typedef struct {
  27. volatile u8 port2led_sta;
  28. volatile u8 scan_dis; //关闭LED灯扫描
  29. volatile u8 mic2led_bak_sta;
  30. volatile u8 dac2led_bak_sta;
  31. u8 port2led_en; //是否1个GPIO推2个灯
  32. u8 led_type;
  33. u8 mic2led_en; //复用MIC脚推蓝灯
  34. u8 dac2led_en; //复用DAC脚推蓝灯
  35. u8 charge_rled_en : 1,
  36. charge_bled_en : 1,
  37. charge_led_2s_en : 1,
  38. charge_bre_en : 1, //呼吸灯模式使能
  39. charge_bre_cfg : 2, //呼吸灯模式选择
  40. lowbat_led_en : 1; //低电led独立控制
  41. u8 tws_con_bre_en : 1,
  42. tws_play_bre_en : 1,
  43. tws_con_bre_cfg : 2,
  44. tws_play_bre_cfg : 2;
  45. volatile u8 crbf_run;
  46. } sys_led_t;
  47. extern sys_led_t sys_led;
  48. enum
  49. {
  50. LED_TOG_LBAT = 0x03, //低电LED闪烁
  51. LED_CRITICAL = 0x80, //临界处理
  52. };
  53. void led_cfg_port_init(gpio_t *g);
  54. void led_cfg_set_on(gpio_t *g);
  55. void led_cfg_set_off(gpio_t *g);
  56. void led2_port_init(gpio_t *g);
  57. void bled2_set_on(gpio_t *g);
  58. void bled2_set_off(gpio_t *g);
  59. void rled2_set_on(gpio_t *g);
  60. void rled2_set_off(gpio_t *g);
  61. void bled2_set_on_fix(gpio_t *g);
  62. void bled2_set_off_fix(gpio_t *g);
  63. void rled2_set_on_fix(gpio_t *g);
  64. void rled2_set_off_fix(gpio_t *g);
  65. #if LED_DISP_EN
  66. void led_set_sta(u8 rled_sta, u8 bled_sta, u8 unit, u8 period);
  67. void led_cfg_set_sta(led_cfg_t *cfg_cb);
  68. void rled_lowbat(void);
  69. void rled_lowbat_recover(void);
  70. void port_2led_scan(void);
  71. bool port_2led_is_sleep_en(void);
  72. void bled_set_off(void);
  73. void bled_set_on(void);
  74. void led_init(void);
  75. void led_on(void);
  76. void rled_on(void);
  77. void led_off(void);
  78. void rled_off(void);
  79. void led_aux_idle(void);
  80. void led_scan(void);
  81. void led_sync(void);
  82. void led_bt_init(void);
  83. void led_bt_idle(void);
  84. void led_bt_connected(void);
  85. void led_bt_connectting(void);
  86. void led_bt_reconnect(void);
  87. void led_bt_play(void);
  88. u32 led_bt_sleep(u8 cfg_val);
  89. void led_bt_ring(void);
  90. void led_bt_call(void);
  91. void led_bt_scan(void);
  92. void led_ctrl_configure(u8 cfg_val);
  93. void led_power_up(void);
  94. void led_power_down(void);
  95. void charge_led_off(u8 sta);
  96. void charge_led_on(void);
  97. void rled_set_off(void);
  98. void rled_set_tog(void);
  99. void rled_set_on(void);
  100. void led_aux_play(void);
  101. void led_aux_idle(void);
  102. #define led_bt_pb_sleep(x) led_ctrl_configure(x)
  103. #define charge_bled_on() LED_SET_ON() //充满蓝灯常亮
  104. #define charge_bled_off() LED_SET_OFF() //充满蓝灯灭
  105. #else
  106. #define led_set_sta(x)
  107. #define led_cfg_set_sta(x)
  108. #define led_init()
  109. #define led_on()
  110. #define rled_on()
  111. #define led_off()
  112. #define rled_off()
  113. #define led_aux_idle()
  114. #define led_scan()
  115. #define led_sync()
  116. #define led_bt_init()
  117. #define led_bt_idle()
  118. #define led_aux_play()
  119. #define led_bt_connected()
  120. #define led_bt_reconnect()
  121. #define led_bt_connectting()
  122. #define led_bt_play()
  123. #define led_bt_sleep(x) (-1L)
  124. #define led_bt_ring()
  125. #define led_bt_call()
  126. #define led_bt_scan()
  127. #define led_bt_pb_sleep(x)
  128. #define led_power_up()
  129. #define led_power_down()
  130. #define charge_led_off(x)
  131. #define charge_led_on()
  132. #define rled_lowbat()
  133. #define rled_lowbat_recover()
  134. #define port_2led_scan()
  135. #define port_2led_is_sleep_en() 1
  136. #define charge_bled_on()
  137. #endif
  138. #endif //_BSP_LED_H_