72 lines
1.4 KiB
C
72 lines
1.4 KiB
C
|
|
#include "kt_light_led.h"
|
||
|
|
#include "tone_player.h"
|
||
|
|
|
||
|
|
static u8 led_mode = 0;
|
||
|
|
static u16 tid = 0;
|
||
|
|
const char *light_led_level_tone[3] = {TONE_LT_L0, TONE_LT_L1, TONE_LT_L2};
|
||
|
|
|
||
|
|
void led_flash_callback(void *p)
|
||
|
|
{
|
||
|
|
static u8 flag = 0;
|
||
|
|
flag = !flag;
|
||
|
|
if (flag)
|
||
|
|
{
|
||
|
|
gpio_set_output_value(KT_CFG_LED_PIN, 1);
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
gpio_set_output_value(KT_CFG_LED_PIN, 0);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
void kt_light_led_level_change(void)
|
||
|
|
{
|
||
|
|
led_mode++;
|
||
|
|
if (led_mode > 2) //0-2
|
||
|
|
{
|
||
|
|
led_mode = 0;
|
||
|
|
}
|
||
|
|
|
||
|
|
tone_play(light_led_level_tone[led_mode], 1);
|
||
|
|
|
||
|
|
switch (led_mode)
|
||
|
|
{
|
||
|
|
case 0:
|
||
|
|
//关灯
|
||
|
|
if (tid)
|
||
|
|
{
|
||
|
|
sys_timer_del(tid);
|
||
|
|
}
|
||
|
|
tid = 0;
|
||
|
|
gpio_set_output_value(KT_CFG_LED_PIN, 0);
|
||
|
|
break;
|
||
|
|
case 1:
|
||
|
|
//爆闪 2.5hz 50%占空比
|
||
|
|
if (tid)
|
||
|
|
{
|
||
|
|
sys_timer_del(tid);
|
||
|
|
}
|
||
|
|
tid = sys_timer_add(NULL, led_flash_callback, 200);
|
||
|
|
break;
|
||
|
|
case 2:
|
||
|
|
//常亮
|
||
|
|
if (tid)
|
||
|
|
{
|
||
|
|
sys_timer_del(tid);
|
||
|
|
}
|
||
|
|
tid = 0;
|
||
|
|
gpio_set_output_value(KT_CFG_LED_PIN, 1);
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
void kt_light_led_init(void)
|
||
|
|
{
|
||
|
|
led_mode = 0;
|
||
|
|
|
||
|
|
// 初始化GPIO LED
|
||
|
|
gpio_set_pull_down(KT_CFG_LED_PIN, 0);
|
||
|
|
gpio_set_pull_up(KT_CFG_LED_PIN, 0);
|
||
|
|
gpio_set_direction(KT_CFG_LED_PIN, 0);
|
||
|
|
gpio_set_output_value(KT_CFG_LED_PIN, 0);
|
||
|
|
}
|