请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CC1350 工具/软件:TI-RTOS
您好!
当我添加除初始化之外的几乎任何函数时、请帮助我找出计时器中断停止工作的原因。
定时器初始化并按如下方式启动:
GPTimerCC26XX_Params 参数; GPTimerCC26XX_PARAMS_INIT (params); Params.width = GPT_CONFIG_32位;// GPT_CONFIG_16BIT; params.mode = GPT_MODE_periode_up; params.debugStallMode = GPTimerCC26XX_DEBUG_STALL_OFF; GPTimerCC26XX_Handle hTimer = GPTimerCC26XX_OPEN (CC1350STK_GPTIMER0A、¶ms); xdc_runtime_Types_FreqHz 频率; BIOS_getCpuFreq (&freq); GPTimerCC26XX_value loadVal = freq.lo - 1;//47999 GPTimerCC26XX_setLoadValue (hTimer、loadVal); GPTimerCC26XX_registerInterrupt (hTimer、timerCallback、GPT_INT_MATCH);//GPT_INT_TIMEOUT GPTimerCC26XX_START (hTimer); void timerCallback (GPTimerCC26XX_Handle handle、GPTimerCC26XX_IntMask interruptMask){ //此处显示中断回调代码。 最大限度地减少中断处理。 GPIO_TOGGLE (Board_GPIO_LED1); }
如果在 GPTimerCC26XX_START (hTimer)之后没有添加任何其他内容、则此代码段可正常工作;
但是、当我在上述代码之后添加循环、睡眠或几乎任何函数时、它会停止执行中断(触发 LED)
此外、当我在第一个片段之后或在回调函数内调用 UART_WRITE 函数时、计时器停止工作!
为什么会发生这种情况! 定时器已经是一个硬件外设、并且应该独立于代码的其余部分工作。 它还执行硬件中断!
提前感谢您