51xx 增加呼吸灯功能

51xx 增加呼吸灯功能

diff --git a/adk/src/domains/peripheral/led_manager/led_manager.c b/adk/src/domains/peripheral/led_manager/led_manager.c
index 1cd3d3a1..10862be8 100644
--- a/adk/src/domains/peripheral/led_manager/led_manager.c
+++ b/adk/src/domains/peripheral/led_manager/led_manager.c
@@ -18,6 +18,16 @@
 #include "led_manager_protected.h"
 #include "adk_log.h"
 
+#define PWM_FLASH_RATE 0x8
+#define PWM_FLASH_PERIOD 0xF
+#define PWM_INITIAL_STATE 0x2
+#define PWM_MAX_BRIGHTNESS_HOLD_TIME 0x4a12UL
+#define PWM_MIN_BRIGHTNESS_HOLD_TIME 0x2a12UL
+#define PWM_DUTY_CYCLE   0xfffUL
+#define PWM_LOW_DUTY_CYCLE   0x0UL
+#define PWM_HOLD_TIME_LAST  (PWM_MIN_BRIGHTNESS_HOLD_TIME+PWM_MAX_BRIGHTNESS_HOLD_TIME)*16/1000
+#define PWM_RAMP_TIME_LAST  ((1<<PWM_FLASH_RATE + 1)-1)* 128*(PWM_FLASH_PERIOD+1)*(PWM_DUTY_CYCLE-PWM_LOW_DUTY_CYCLE)/4096/1000
+
 /*!< LED data structure */
 led_manager_task_data_t led_mgr;
 
@@ -111,7 +121,10 @@ static void ledManager_Update(void)
         {
             led_filter_t filter_func = led_mgr.filter[filter];
             if (filter_func)
+            {
                 led_state = filter_func(led_state);
+                led_mgr.pwm = 0;
+            }
         }
     }
     else
@@ -133,12 +146,25 @@ static void ledManager_Update(void)
     }
     else
     {
-        switch (led_mgr.hw_config->number_of_leds)
+        for(uint8 i=0;i<led_mgr.hw_config->number_of_leds;i++)
         {
-            case 3: LedConfigure(2, LED_ENABLE, led_state & 0x04 ? 1 : 0);
-            case 2: LedConfigure(1, LED_ENABLE, led_state & 0x02 ? 1 : 0);
-            case 1: LedConfigure(0, LED_ENABLE, led_state & 0x01 ? 1 : 0);
-            default: bre

  • 12
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值