This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
GPTimerCC26XX_Params params1A;
GPTimerCC26XX_Params_init(¶ms1A);
params1A.width = GPT_CONFIG_16BIT;
params1A.mode = GPT_MODE_EDGE_COUNT_UP;
params1A.debugStallMode = GPTimerCC26XX_DEBUG_STALL_OFF;
hTimer1A = GPTimerCC26XX_open(CC1310_LAUNCHXL_GPTIMER1A, ¶ms1A);
if(hTimer1A == NULL) {
while(1);
}
GPTimerCC26XX_registerInterrupt(hTimer1A, timerCallback1A, GPT_INT_CAPTURE);
GPTimerCC26XX_PinMux pinMux = GPTimerCC26XX_getPinMux(hTimer1A);
PINCC26XX_setMux(pinHandle, Board_GPIO_BUTTON1, pinMux);
GPTimerCC26XX_setCaptureEdge(hTimer1A, GPTimerCC26XX_NEG_EDGE);
GPTimerCC26XX_setLoadValue(hTimer1A, 0xffffff);
GPTimerCC26XX_start(hTimer1A);
执行上述代码时,出现如下情况导致中断卡住,求解答:
debug调试中,第一次边缘触发没有捕获到,然后再回到第一行代码重新运行时,第二次运行出现卡死再while(1)函数的情况(即htimer1A为空),请问如何解决?
您可以参考一下下面帖子的讨论
https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/420104/using-cc2650-gptimers-to-measure-narrow-pulses
该帖子是讨论 使用 CC2650 GPTimers 测量窄脉冲,基本的用法类似
void timerCallback1A(GPTimerCC26XX_Handle handle, GPTimerCC26XX_IntMask interruptMask) { counter = counter + 1; // interrupt callback code goes here. Minimize processing in interrupt. } void celiang_init () { GPTimerCC26XX_Params params1A; GPTimerCC26XX_Params_init(¶ms1A); params1A.width = GPT_CONFIG_16BIT; params1A.mode = GPT_MODE_EDGE_COUNT_UP; params1A.debugStallMode = GPTimerCC26XX_DEBUG_STALL_OFF; hTimer1A = GPTimerCC26XX_open(CC1310_LAUNCHXL_GPTIMER1A, ¶ms1A); if(hTimer1A == NULL) { while(1); } GPTimerCC26XX_registerInterrupt(hTimer1A, timerCallback1A, GPT_INT_CAPTURE); GPTimerCC26XX_PinMux pinMux = GPTimerCC26XX_getPinMux(hTimer1A); PINCC26XX_setMux(pinHandle, Board_PIN_BUTTON1, pinMux); GPTimerCC26XX_setCaptureEdge(hTimer1A, GPTimerCC26XX_NEG_EDGE); GPTimerCC26XX_setLoadValue(hTimer1A, 0x130B00);//定时26ms GPTimerCC26XX_start(hTimer1A); GPTimerCC26XX_close(hTimer1A); }
非开发板,采集脚为将原来的BTN2重新定义为dio_2, 再主函数中调用此函数,采集下降沿,如果采集到counter+1.