Thread 中讨论的其他器件:CC3220SF、 SysConfig
你好!
我尝试在应用程序中打开两个独立线程中的计时器、但失败了。 第一个选项正确打开、我可以在 CONFIG_TIMER_0或 CONFIG_TIMER_1上打开第一个选项。 第一个任务打开其计时器后、我尝试在另一个任务中打开另一个任务、但它失败了。 我正在使用 CC3220SF、该应用程序位于 TI-RTOS 4.40.00.07中。 任务是 pthread。 WHsystem.test()只打印出发送到函数中用于调试目的的2个参数。
这是来自第一个任务的代码(始终有效)
Timer_Params timerParams;
Timer_handle timer0;
timer_init();
Timer_Params_init (&timerParams);
timerParams.period = 1000;/* 1ms */
timerParams.periodUnits = Timer_Period_US;
timerParams.timerMode = Timer_Continuous_callback;
timerParams.timerCallback = mainScheduler;
timer0 = Timer_open (CONFIG_TIMER_0、&timerParams);
if (timer0 == NULL){
/*初始化计时器失败*/
WHsystem.test (__line__、__file__);
while (1){}
}
如果(Timer_start (timer0)= Timer_STATUS_ERROR){
WHsystem.test (__line__、__file__);
/*无法启动计时器*/
while (1){}
}
第二个任务计时器初始化如下所示:
// Timer_init();
Timer_Params_init (&timerParams);
timerParams.period = 500;/* 1ms */
timerParams.periodUnits = Timer_Period_US;
timerParams.timerMode = Timer_Continuous_callback;
timerParams.timerCallback = sensorScheduler;
Timer1 = Timer_open (CONFIG_TIMER_1、&timerParams);
if (Timer1 == NULL){
/*初始化计时器失败*/
WHsystem.test (__line__、__file__);
while (1){}
}
如果(Timer_start (Timer1)= Timer_STATUS_ERROR){
WHsystem.test (__line__、__file__);
/*无法启动计时器*/
while (1){}
}
在第二个任务初始化中、当 Timer1 = NULL (上面的粗体)时、我总是会在错误代码中结束。 当我在第二个任务中离开对 timer_init()的调用时,我甚至没有得到这么远的结果,这是有道理的,因为它应该将每个计时器初始化为默认值。 如果有人能帮助我了解第二个计时器设置失败的原因、我将不胜感激。
谢谢、
维也纳国际中心