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