不知道怎么用定时器来控制D12灯均匀的亮灭,并且控制在一定时间内,只知道用delay函数可以
求方法或程序
你可以写一个循环,然后定时控制就可以
定时器中断,中断函数里反转灯的状态
定时执行一次LED_toggle_timmer(int toggle_time)函数或者把函数里的东西直接放在main函数里即可实现这个功能,根据输入的toggle_time控制led灯的亮灭间隔,使用时间戳,不需要delay,实际项目中这种功能用delay控制是绝对不行的
//led状态翻转函数
void LED_toggle()
{
static unsigned char led_status = 1;
led_status = !led_status;
gpio_pin_set(LED_pin, led_status);
}
void LED_toggle_timmer(int toggle_time)
{
static unsigned int last_time = get_system_time();
if (get_system_time() - last_time >= toggle_time)
{
last_time = get_system_time();
LED_toggle();
}
}