Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Not applicable
I have one question.

I found CC8 example project for xmc4500 at your web site.
http://www.infineon.com/dgdl/Infineon-CCU8-XMC1000_XMC4000-AP32288_Example_Code-AN-v01_01-EN.exe?fil...

I'm confirming the behavior of Period match interrupt and one match interrupt using use case No3 of this example.
I build this project and program via debugeer,after that I insert breakpoint at code of period match interrupt routine and start it.
But debugger don't halt at this breakpoint.....
I changed this break point at code of one match interrupt routine.
In this case,debugger halt at this break point.

Could you please advice me why this CCU8 timer doesn't interrupt at period match interrupt routine!
0 Likes
4 Replies
Travis
Employee
Employee
First solution authored Welcome! 500 replies posted
Did you check if the interrupt node is mapped correctly?
0 Likes
Not applicable
I used default project not modify by myself.
If we use period match interrupt,does we need to modify sample project?
If yes,could you please tell me the point we should modify.
0 Likes
Travis
Employee
Employee
First solution authored Welcome! 500 replies posted
Yes. I share the same experience. 😞

Let me check with the owner.
0 Likes
lock attach
Attachments are accessible only for community members.
Not applicable
HI novkaz,

Thanks for pointing this out!

In center aligned mode, the service request selector for Period/One match Service request selector is mapped to the same interrupt node. Therefore, it is not possible for separate interrupt nodes for Period event and One match event.
==> "SRS.POSR: This field selects to which slice Service request line, the interrupt(s) generated by the Period match while counting up and One match while counting down are going to be forward."

In this case, we can check for the event inside the interrupt handler.

/* Period Match and One Match ISR Handler */
void CCU80_0_IRQHandler(void)
{
if(XMC_CCU8_SLICE_GetEvent(SLICE0_PTR, XMC_CCU8_SLICE_IRQ_ID_PERIOD_MATCH))
{
XMC_CCU8_SLICE_ClearEvent(SLICE0_PTR, XMC_CCU8_SLICE_IRQ_ID_PERIOD_MATCH);

/* Application specific code */
}

if(XMC_CCU8_SLICE_GetEvent(SLICE0_PTR, XMC_CCU8_SLICE_IRQ_ID_ONE_MATCH))
{
XMC_CCU8_SLICE_ClearEvent(SLICE0_PTR, XMC_CCU8_SLICE_IRQ_ID_ONE_MATCH);

/* Application specific code */
}
}

The updated code for this example is attached. We will update this example in the application note.

Regards,
Daryl
0 Likes