|
|
@ -3,10 +3,11 @@ |
|
|
|
#include "board.h" |
|
|
|
#include "znordic.h" |
|
|
|
|
|
|
|
#define BLINK_CNT 1 |
|
|
|
#define BLINK_PERIOD_MS (100) |
|
|
|
|
|
|
|
#define LIGHT_PWM_DRIVER 1 |
|
|
|
#define BLINK_CNT 1 |
|
|
|
#define BLINK_PERIOD_MS (100) |
|
|
|
#define QUICK_BLINK_PERIOD_MS (100) |
|
|
|
#define SLOW_BLINK_PERIOD_MS (3000) |
|
|
|
#define LIGHT_PWM_DRIVER 1 |
|
|
|
|
|
|
|
// LED_GREEN_PIN |
|
|
|
|
|
|
@ -51,12 +52,16 @@ static pwm_light_ctrl_t light_ctrl = { |
|
|
|
}, |
|
|
|
}; |
|
|
|
|
|
|
|
static LightEffect m_light_effect; |
|
|
|
static bool m_led_green_light_state; |
|
|
|
static int m_blink_cnt; |
|
|
|
static LightEffect_t m_light_effect; |
|
|
|
static bool m_led_green_light_state; |
|
|
|
static int m_blink_cnt; |
|
|
|
APP_TIMER_DEF(m_green_light_effect_tmr); |
|
|
|
|
|
|
|
static bool m_boardlight_greenlightstate = false; |
|
|
|
|
|
|
|
void BoardLight_toggleGreenLightState() { BoardLight_setGreenLightState(!m_boardlight_greenlightstate); } |
|
|
|
void BoardLight_setGreenLightState(bool state) { |
|
|
|
m_boardlight_greenlightstate = state; |
|
|
|
#if LIGHT_PWM_DRIVER |
|
|
|
if (state) { |
|
|
|
light_ctrl.seq_values.channel_0 = 95; // 设置占空比,数值最大不超过 top_value |
|
|
@ -92,11 +97,17 @@ static void BoardLight_effect_tmr_handler(void* p_context) { // |
|
|
|
BoardLight_setGreenLightState(false); |
|
|
|
} |
|
|
|
} else { |
|
|
|
if (BLINK_PERIOD_MS * m_blink_cnt >= 1000) { |
|
|
|
if (BLINK_PERIOD_MS * m_blink_cnt >= SLOW_BLINK_PERIOD_MS) { |
|
|
|
m_blink_cnt = 0; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
} else if (m_light_effect == kLightEffect_quickFlash) { |
|
|
|
if (BLINK_PERIOD_MS * m_blink_cnt >= QUICK_BLINK_PERIOD_MS) { |
|
|
|
BoardLight_toggleGreenLightState(); |
|
|
|
m_blink_cnt = 0; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
m_blink_cnt++; |
|
|
|
} |
|
|
@ -112,9 +123,8 @@ void BoardLight_Init() { |
|
|
|
void BoardLight_load() {} |
|
|
|
void BoardLight_unload() { BoardLight_setGreenLightEffect(kLightEffect_close); } |
|
|
|
|
|
|
|
void BoardLight_toggleGreenLightState() { nrf_gpio_pin_toggle(LED_GREEN_PIN); } |
|
|
|
|
|
|
|
void BoardLight_setGreenLightEffect(LightEffect effect) { |
|
|
|
void BoardLight_setGreenLightEffect(LightEffect_t effect) { |
|
|
|
m_light_effect = effect; |
|
|
|
|
|
|
|
switch (effect) { |
|
|
@ -129,8 +139,20 @@ void BoardLight_setGreenLightEffect(LightEffect effect) { |
|
|
|
case kLightEffect_slowFlash: |
|
|
|
app_timer_start(m_green_light_effect_tmr, APP_TIMER_TICKS(BLINK_PERIOD_MS), NULL); |
|
|
|
break; |
|
|
|
case kLightEffect_quickFlash: |
|
|
|
app_timer_start(m_green_light_effect_tmr, APP_TIMER_TICKS(BLINK_PERIOD_MS), NULL); |
|
|
|
break; |
|
|
|
default: |
|
|
|
break; |
|
|
|
} |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
void BoardLight_blockFlash(int times, int periodms) { |
|
|
|
for (int i = 0; i < times; i++) { |
|
|
|
BoardLight_setGreenLightState(true); |
|
|
|
nrf_delay_ms(periodms); |
|
|
|
BoardLight_setGreenLightState(false); |
|
|
|
nrf_delay_ms(periodms); |
|
|
|
} |
|
|
|
} |