I'm prettysure I'm not propperly acknolwedging the CPU TIMER1 interrupt.
I set it up:
// 80MHz CPU Freq, 100 microsecond Period (in uSeconds), 10kHz interrupt ConfigCpuTimer(&CpuTimer1, 80, 100); CpuTimer1Regs.TCR.all = 0x4000; // Enable all interrupts globally IER |= M_INT8 | M_INT1 | M_INT3 | M_INT13;
..then at the end of the ISR I say:
PieCtrlRegs.PIEACK.all = M_INT13;
Oddly, in the cpy timer example I see in the Resource Explorer I don't see any ACK:
__interrupt void cpu_timer1_isr(void)
{
CpuTimer1.InterruptCount++;
// The CPU acknowledges the interrupt.
EDIS;
}
..which is confusing. I see BIT 12 (Timer 1) set in the IER, and in the IFR, when my code executes. I get the feeling I need to manually clear the IFR buit for Timer1 but none of my examples do that.
Does anyone have any idea of what could be happening here? There's no codfe path around the PIE ACK, so that's not an issue, yet it appears that eventually soem flag stops being cleared and that's it for my ISR.