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.

MSP432P401V: Interrupts are working but the ISR's at executing only after a long delay

Part Number: MSP432P401V

I'm porting code from a TM4C123. I'm running TIMER32 in free-running mode as a high speed timer and have created a 64-bit timer accordingly, whereby the TIMER32 interrupt increments the upper 32 bits. Interrupts are working, but are responding very slowly. In the case of this TIMER32, it is taking 1392 ticks of this timer at 48MHz (or about 29us) before the ISR is executed. Interrupt and 64-bit timer code was borrowed from TI SDK Example Projects. System timing has otherwise been confirmed by verifying SYSTICK at 1ms. Have I missed something when configuring the interrupts? I reduced the priority of SYSTICK and the UART, but TIMER32 interrupt is still slow to respond. Also, I am having noticeable problems with the UART interrupt too.

  • Hello David,

    Do you notice the same delay with the example code in the SDK? If yes then please provide the name and location of the example in the SDK (along with code snippet or steps) so that I can reproduce the issue.

    Thanks,

    Sai 

  • I did not run the example code. I only borrowed from it. It will take some time to determine if any of the interrupt-based examples have the same issue.

    BTW, C:\ti\simplelink_msp432p4_sdk_3_20_00_06\source\ti\devices\msp432p4xx\driverlib\interrupt.h file does not match the MSP432P401V datasheet. Is there documentation that says we need to update this file to match our processor?

    In addition, dma.c, adc14.c, driverlib.h and cs.c all call interrupt.c, which means they need to be changed to point to a MSP432PV01V-compatible interrupt.c file. Or am I missing something?

  • I was able to isolate the problem to two causes. First, I had not yet established priorities for my interrupts. They were all running with priority 0. After configuring the interrupts appropriately, the TIMER32 issue was resolved. Second Cause: The code was created around a home-grown Event Controller(EC). Unfortunately, the EC frequently disables all interrupts. So, the software can no longer handle UART communications at 115200 on a 45MHz processor instead of the previous 80MHz processor.

**Attention** This is a public forum