请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CC1312R 您好!
我正在研究 LAUNCHXL-CC1312R1板和 rfEasyLinkRx 示例。
定时器和中断的设置为;
GPTimerCC26XX_Params 参数; Params.width = GPT_CONFIG_32位; params.mode = GPT_MODE_OneShot_Up; params.debugStallMode = GPTimerCC26XX_DEBUG_STALL_OFF; HTimer = GPTimerCC26XX_OPEN (Board_GPTIMER0A、params); if (hTimer==空) { while (1); } /*将超时值设置为300ms */ rxTimeoutVal =(SysCtrlClockGet()*3UL)/10UL -1UL; GPTimerCC26XX_setLoadValue (hTimer、rxTimeoutVal); /*注册 GPTimer 中断*/ GPTimerCC26XX_registerInterrupt (hTimer、rxTimeoutCb、GPT_INT_TIMEOUT);
这是代码;
PIN_setOutputValue (pinHandle、Board_PIN_LED2、1); PIN_setOutputValue (pinHandle、Board_PIN_LED2、0); GPTimerCC26XX_setLoadValue (hTimer、rxTimeoutVal); GPTimerCC26XX_START (hTimer); 延迟(250000);//延迟250ms GPTimerCC26XX_STOP (hTimer); PIN_setOutputValue (pinHandle、Board_PIN_LED1、1); PIN_setOutputValue (pinHandle、Board_PIN_LED1、0); GPTimerCC26XX_setLoadValue (hTimer、rxTimeoutVal); GPTimerCC26XX_START (hTimer); while (1);
这里是中断函数;
void rxTimeoutCb (GPTimerCC26XX_Handle handle、 GPTimerCC26XX_IntMask interruptMask) { /*设置超时标志*/ rxTimeoutFlag =真; PIN_setOutputValue (pinHandle、Board_PIN_LED2、1); PIN_setOutputValue (pinHandle、Board_PIN_LED2、0); }
存在 LED 引脚行为。 尽管停止计时器并重新加载该值、但计时器会再运行50ms、并产生中断。 停止并重新加载值后、我应该怎么做才能使它运行300ms 并产生中断? 谢谢。。。
