2026-04-24 08:03:25 +00:00
|
|
|
#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++;
|
2026-04-25 10:10:10 +00:00
|
|
|
if (led_mode > 2) // 0-2
|
2026-04-24 08:03:25 +00:00
|
|
|
{
|
|
|
|
|
led_mode = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
tone_play(light_led_level_tone[led_mode], 1);
|
|
|
|
|
|
|
|
|
|
switch (led_mode)
|
|
|
|
|
{
|
|
|
|
|
case 0:
|
2026-04-25 10:10:10 +00:00
|
|
|
// 关灯
|
2026-04-24 08:03:25 +00:00
|
|
|
if (tid)
|
|
|
|
|
{
|
|
|
|
|
sys_timer_del(tid);
|
|
|
|
|
}
|
|
|
|
|
tid = 0;
|
|
|
|
|
gpio_set_output_value(KT_CFG_LED_PIN, 0);
|
|
|
|
|
break;
|
|
|
|
|
case 1:
|
2026-04-25 10:10:10 +00:00
|
|
|
// 常亮
|
2026-04-24 08:03:25 +00:00
|
|
|
if (tid)
|
|
|
|
|
{
|
|
|
|
|
sys_timer_del(tid);
|
|
|
|
|
}
|
2026-04-25 10:10:10 +00:00
|
|
|
tid = 0;
|
|
|
|
|
gpio_set_output_value(KT_CFG_LED_PIN, 1);
|
2026-04-24 08:03:25 +00:00
|
|
|
break;
|
|
|
|
|
case 2:
|
2026-04-25 10:10:10 +00:00
|
|
|
// 爆闪 2.5hz 50%占空比
|
2026-04-24 08:03:25 +00:00
|
|
|
if (tid)
|
|
|
|
|
{
|
|
|
|
|
sys_timer_del(tid);
|
|
|
|
|
}
|
2026-04-25 10:10:10 +00:00
|
|
|
tid = sys_timer_add(NULL, led_flash_callback, 200);
|
2026-04-24 08:03:25 +00:00
|
|
|
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);
|
|
|
|
|
}
|