Other Parts Discussed in Thread: SYSCONFIG
主题中讨论的其他器件:SysConfig
您好!
我一直在尝试停止并启动一个无阻塞的单触发回调计时器。 我注意到、每当我尝试启动备份计时器时、它将从停止的地方启动、而不是从上次启动时开始。 在下面提供的代码中、我显示了我如何尝试启动计时器、使其进入睡眠状态500ms。停止、关闭它、打开它、然后重新启动。 不过、在代码运行5秒后、我在回调中获得 printf 语句、而不是在计时器最后一次启动后5秒。 我做错了什么、如果不是、最有效的工作是什么?
空 timerCallback (Timer_Handle 句柄、int_fast16_t 状态)
{
printf ("计时器 cb\r\n ");
}
空测试()
{
Timer_Params _timer_params;
Timer_Params_(&_timer_params);
_timer_params.periodUns = Timer_period_us;
Timer_Handle _timer = NULL;
_timer_params.period = 5000000;
_timer_params.timerCallback = timerCallback;
_timer_params.timerMode = Timer_OneShot 回调函数;
_TIMER = Timer_open (CONFIG_TIMER_3、&_TIMER_PARAMS);
Timer_start (_timer);
usleep(500000);
printf ("usleep1\r\n");
Timer_stop (_timer);
timer_close (_timer);
_TIMER = Timer_open (CONFIG_TIMER_3、&_TIMER_PARAMS);
Timer_start (_timer);
usleep(500000);
printf ("usleep2\r\n");
Timer_stop (_timer);
timer_close (_timer);
_TIMER = Timer_open (CONFIG_TIMER_3、&_TIMER_PARAMS);
Timer_start (_timer);
usleep(500000);
printf ("usleep3\r\n");
Timer_stop (_timer);
timer_close (_timer);
_TIMER = Timer_open (CONFIG_TIMER_3、&_TIMER_PARAMS);
Timer_start (_timer);
usleep(500000);
printf ("usleep4\r\n");
Timer_stop (_timer);
timer_close (_timer);
_TIMER = Timer_open (CONFIG_TIMER_3、&_TIMER_PARAMS);
Timer_start (_timer);
usleep(500000);
printf ("usleep5\r\n");
Timer_stop (_timer);
timer_close (_timer);
_TIMER = Timer_open (CONFIG_TIMER_3、&_TIMER_PARAMS);
Timer_start (_timer);
printf ("timer go\r\n");
睡眠(60);
timer_close (_timer);
}
