Other Parts Discussed in Thread: TMS320F28335
Dear all,
I'm using the ADC of my TMS320F28335 in DMA mode. Thus I have an ISR (local_DINTCH1_ISR) associated to the DMA channel1 (PieVectTable.DINTCH1 = &local_DINTCH1_ISR;). Then I have created another ISR with lower priority: low_priority_ISR, that I have associated to PieVectTable.rsvd12_6 = &low_priority_ISR;
For test purpose, the low_priority_ISR simply enter into a infinite while loop:
while(1){}
Into the dma ISR (local_DINTCH1_ISR), I send the interrupt associated to the low_priority_ISR:
while(PieCtrlRegs.PIEIFR12.all != 0x0000 ){}
PieCtrlRegs.PIEIFR12.bit.INTx6 = 1;
Thus, the cpu ends the high priority ISR (local_DINTCH1_ISR) and then goes into the low_priority_ISR. Once into the low_priority_ISR, the cpu goes into an infinite loop (while(1){}) and even if it receives the DMA higher priority interrupts, it never goes into the higher priority ISR (local_DINTCH1_ISR) becouse it never ends the current ISR.
I woild like to have the DMA interrupts served immediatly, without waiting the end of the lower priority interrupts.
There is a way to serve the higher priority interrupts before ending the lower priority ones?
Thank you.
Best regards,
Alessandro Polpetta