TI中文支持网
TI专业的中文技术问题搜集分享网站

Util_constructClock 的回调函数只能进行信号量/消息的发送?

IC: CC2642

SDK: simplelink_cc13x2_26x2_sdk_3_20_00_68

官方的是这样的:

static void SimplePeripheral_clockHandler(UArg arg)
{spClockEventData_t *pData = (spClockEventData_t *)arg;if (pData->event == SP_PERIODIC_EVT){// Start the next periodUtil_startClock(&clkPeriodic);// Post event to wake up the applicationSimplePeripheral_enqueueMsg(SP_PERIODIC_EVT, NULL);}else if (pData->event == SP_READ_RPA_EVT){// Start the next periodUtil_startClock(&clkRpaRead);// Post event to read the current RPASimplePeripheral_enqueueMsg(SP_READ_RPA_EVT, NULL);}else if (pData->event == SP_SEND_PARAM_UPDATE_EVT){// Send message to appSimplePeripheral_enqueueMsg(SP_SEND_PARAM_UPDATE_EVT, pData);}
}


我的是这样的:


void Clock0_handler(UArg arg)
{//uart0 send
}

void Clock1_handler(UArg arg)
{//read adc//oled display 
}




我还新建了一个任务:


void Test_createTask()
{Task_Params taskParams;// Configure taskTask_Params_init(&taskParams);taskParams.stack = testTaskStack;taskParams.stackSize = TEST_TASK_STACK_SIZE;taskParams.priority = TEST_TASK_PRIORITY;Task_construct(&testTask, Test_taskFxn, &taskParams, NULL);
}

static void Test_taskFxn(UArg a0, UArg a1)
{uint32_t events=0;oled_init();uart_init();for(;;){events = TestEvent_pend(EVENT_START_TEST|EVENT_MY_UARTEMULATRO, 0x0fffffff);if(events){if (events & EVENT_START_TEST){age_board_process();}else if (events & EVENT_MY_UARTEMULATRO){MyEvent_uartEmulatorHandle();//scif 串口发送}}events=0;}
}

Clock0_handler每秒运行一次,使用uart0发送数据,出现的问题是:不定时死机,有时候10秒,有时候30多秒,几分钟,几小时,大多数都在30多秒就死机了,

请问这是因为定时器的问题吗?

Viki Shi:

讨论一下,稍后回复

Erha:

回复 Viki Shi:

谢谢!请问是不是不能这样用?

Erha:

回复 YiKai Chen:

感谢!

Viki Shi:

回复 Erha:

貌似不是时钟的问题,请看一下TI 工程师的最新回复,然后根据回复检查一下内存: e2e.ti.com/…/3366444

Erha:

回复 Viki Shi:

我按照 YiKai Chen 说的方法,不在Clock0_handler操作uart0后不会死机了。

赞(0)
未经允许不得转载:TI中文支持网 » Util_constructClock 的回调函数只能进行信号量/消息的发送?
分享到: 更多 (0)