Hi All,
I'm using the C5509A and I'd like to use the DMA continuously, i.e. after one transfer finishes, possibly reconfigure the DMA controller, and then start another transfer.
I thought that I could re-start the DMA inside of an interrupt that is generated after the last frame is transmitted.
If I have
interrupt void dmaXmtIsr(void) {
// reconfigure dma here
// ...
// restart here
DMA_start(hDmaXmt);
}
this seems to work as long as I don't have any other interrupt. But when I compile in some USB code, restarting the DMA doesn't work anymore.
I don't have very much experience with interrupts. I played around a little bit with it using the IRQ CSL functions, but I don't get it working. I suppose the USB interrupt has higher priority and then the DMA interrupt gets "lost" as soon as there is a USB interrupt. How can I make that both work correctly toghether?
Btw, the USB interrupt routine is simply:
interrupt void USB_ISR(void)
{
USB_evDispatch(); // call USB event dispather to handle all USB events
}
Thank you very much for your help.
Best regards,
Andreas