I am setting up SPORT0 Interrupts as such:
void Init_Interrupts(void)
{
*pSIC_IMASK0 |= IRQ_DMA2 | IRQ_DMA1;
*pSIC_IAR1 |= 0xfffff23f ;
register_handler(ik_ivg9, SPORT0_Tx_ISR);
register_handler(ik_ivg10, SPORT0_Rx_ISR);
*pIMASK |= EVT_IVG9 | EVT_IVG10;
ssync();
}
Then later I enable
void SPORT0_Enable(void)
{
*pSPORT0_TCR1 |= TSPEN ;
// *pSPORT0_RCR1 |= RSPEN;
ssync();
}
and it correctly interrupts to this routine. However while watching registers the DMA2_IRQ_STATUS register never toggles after it gets to the end of this isr, it steps to the last ssync() in the enable function above and interrupts again.
EX_INTERRUPT_HANDLER(SPORT0_Tx_ISR)
{
*pDMA2_IRQ_STATUS |= 0x0001;
ssync();
*pSPORT0_TX16 = 0xafaf;
}
trying to do some processing in main() and it will not reach outside the enable and interrupt ISR