cc1310 watchdog问题
在程序中创建一个看门狗之后,但是一直没有喂狗,有以下问题
测试一:.程序下载之后,第一次未喂狗复位之后,LED1一直亮,LED2一直一亮一灭 ,reset之后还是这个结果。(而不是在800ms之后复位,然后LED1和LED2暗一会,然后LED1再亮和LED2闪烁,一直这样循环的结果。)
测试二:将Task_sleep(25000);删除之后,800ms之后复位,LED1和LED2暗一会,然后LED1再亮和LED2闪烁,一直这样循环。
问题:
1:看门狗为什么在测试1中没有工作,而在测试2中工作
2;Watchdog_close() 是不被支持的,看门狗如何关闭
int main(void)
{
/* Configure task */
Task_Params TaskParams;
Task_Params_init(&TaskParams);
TaskParams.stackSize = TASK_STACK_SIZE;
TaskParams.stack = TaskStack2;
TaskParams.priority = 2;
TaskParams.stackSize = sizeof(TaskStack2);
Task_construct(&RfTaskStruct, taskFxn, &TaskParams, NULL);
/* Configure Watchdog */
Watchdog_init();
Watchdog_Params Watchdogparams;
Watchdog_Params_init(&Watchdogparams);
watchdogHandle = Watchdog_open(0, &Watchdogparams);
Watchdog_setReload(watchdogHandle, 800000);
GPIO_writeDio(Board_DK_LED1, 1);
BIOS_start();
return (0);
}
static void taskFxn(UArg a0, UArg a1)
{
while(1){
GPIO_writeDio(Board_DK_LED2, !GPIO_readDio(Board_LED2));
Task_sleep(25000);
}
}
看门狗计时到后,并不是马上触发WDT reset,而是先触发WDT interrupt,然后重新看门狗计时,第二次计时到后触发WDT reset。
The WDT can be configured to generate an interrupt to the controller on its first time-out, and to generate
a reset signal on its second time-out.