Quantcast
Channel: Infineon Forums
Viewing all articles
Browse latest Browse all 9892

XMC4800. Problem in retriggering the POSIF Index Event Interrupt Routine

$
0
0
I am using XMC4800 RelaxKit right now.
I have a setup of two encoders connected to POSIF0 + POSIF1, both configured to work with CCU40 and CCU41 timer groups. I am forwarding the Index signal of each POSIF to trigger the POSIFx.SR1 service request line.
The configuration uses the POSIFx.OUT3 signal as a timer capture in both CCU4 units. This works fine at this point. At every index occurrence the counters are captured in the CV[x] registers.

If I activate the POSIF0_1_IRQHandler and the POSIF1_1_IRQHandler, each one of the routines is called ONLY ONCE, only at the first index signal of each POSIF peripheral.
The peripheral is configured to provide every index at the POSIFx.OUT3 output by configuring POSIF0->QDC |= (2U << POSIF_QDC_ICM_Pos);

The index signals are continuing to trigger the capture behaviour in the CCU4x modules but do not retrigger the interrupt routines.

I have cleared the Index ISR flags inside the interrupt routines using:
POSIF0->RPFLG |= POSIF_RPFLG_RINDX_Msk;
POSIF1->RPFLG |= POSIF_RPFLG_RINDX_Msk;

If I set the Interrupt flag manually POSIF0->SPFLG |= POSIF_SPFLG_SINDX_Msk; the ISR triggers and the code is executed.

I need help to configure the peripherals in order to retrigger the POSIFx.SR1 service request line at every single Index event.

Best regards,
Alex

Viewing all articles
Browse latest Browse all 9892


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>