Index DMA | Cypress Semiconductor
I am trying to use asynchronous data to fill a buffer using DMA. I would like to use one dma to determine the destination address for the second DMA (or TD). I have looked at AN84810 and other DMA references.
I want to write a timer value to a, array buffer and then increment the spot in the array. I cant use the auto increment in the dma, becasue it (the DMA) will stay open unitl the next data is received, but I have 8 channels in total that I need to process so I cant keep the DMA open and waiting.
The events come in to fast to process in software.
Is this possible to do?
What I have now that does not work
CyDmaTdSetAddress(DMA_1_TD, LO16((uint32)Counter_1_COUNTER_LSB_PTR), LO16((uint32)&address));
The "CyDMATdSetAddress" function is only called once, so even if the value at address changes, DMA_@ is not reset to use it.