一:有关定时器的用法
之前有个变量不太理解,今天,就通过打印调式来跟踪下变量吧
int led_cnt = 0;
volatile u8 led_time = 0;
void led_off_func()
{
led_cnt++;
pwm_led_mode_set(PWM_LED0_ON);
if(led_cnt >=3)
{
led_cnt = 0;
if(led_time) // 非0为真,那这个值等于多少呢???
{
printf("\n\n---------------------------------\n\n");
printf("file=%s,func=%s, line=%d\n",__FILE__,__func__,__LINE__);
printf("------led_time == %d --------\n",led_time); //通过打印可以看出值!为20
printf("\n\n---------------------------------\n\n");
sys_timer_del(led_time);
pwm_led_mode_set(PWM_LED0_OFF);
}
}
}
//此时,led_time 该值为 20,非0为真,就继续执行下面的值
case STATUS_BT_CONN:
log_info("[STATUS_BT_CONN]\n");
//pwm_led_mode_set(p_led->bt_connect_ok);
if(led_time == 0)
{
led_time = sys_timer_add(NULL,led_off_func,1000);
printf("\n\n---------------------------------\n\n");
printf("file=%s,func=%s, line=%d\n",__FILE__,__func__,__LINE__);
printf("------led_time == %d --------\n",led_time);
printf("\n\n---------------------------------\n\n");
}
break;
sys_timer_add():这是一个定时器函数,对应的就是:sys_timer_del();
定时器从 sys_time_add开始记时,然后跳转函数,led_off_func函数;此时,变量,led_time,通过打印可知,led_time==20;
这是一个关于,连接手机后,LED灯,亮三秒再灭的 LED定时器写法。