Other Parts Discussed in Thread: SYSCONFIG
I am using GPTimerCC26XX in GPT_MODE_EDGE_TIME_UP to measure the mark/space time of an input signal. I am getting the interrupts as expected on the positive and negative edges, however I want to correct for the timer wrap around so I am trying to get an interrupt when the timer resets. I thought GPT_INT_TIMEOUT would work but it doesn't seem to cause an interrupt. Is it possible to get a timeout interrupt in this mode and if so what am I doing wrong?
Code snippets:
GPTimerCC26XX_Params params;
GPTimerCC26XX_Params_init(¶ms);
params.width = GPT_CONFIG_16BIT;
params.mode = GPT_MODE_EDGE_TIME_UP;
params.debugStallMode = GPTimerCC26XX_DEBUG_STALL_OFF;
inputTimer1 = GPTimerCC26XX_open(CONFIG_GPTIMER_0, ¶ms);
GPTimerCC26XX_registerInterrupt(inputTimer1, timerCallback1, GPT_INT_CAPTURE | GPT_INT_TIMEOUT);
GPTimerCC26XX_PinMux pinMux = GPTimerCC26XX_getPinMux(inputTimer1);
PINCC26XX_setMux(hGpioPin, pins[0], pinMux);
GPTimerCC26XX_setCaptureEdge(inputTimer1, GPTimerCC26XX_BOTH_EDGES);
GPTimerCC26XX_setLoadValue(inputTimer1, 0xFFFFFF);
GPTimerCC26XX_start(inputTimer1);
static void timerCallback1(GPTimerCC26XX_Handle handle, GPTimerCC26XX_IntMask interruptMask)
{
if (interruptMask & GPT_INT_CAPTURE)
{
//...
}
if (interruptMask & GPT_INT_TIMEOUT)
{
//...
}
}
Thanks, Martin