以下为原文
Im using the PSoC 5lp dev kit CY8CKIT-050 and I've attached my project. I am attemp
ting to connect DMA to an ADC so that I can do some high speed sampling. The DMA and ADC are acting as expected up to BUFFER_SIZE = 34 (AKA taking 34 data readings from the ADC and storing to ram). However when I set BUFFER_SIZE to 35 or above, I never reach the DMA_done_isr interrupt. The DMA should be able to handle up to 4095 bytes at a time and with a BUFFER_SIZE of 35, it should only be shifting 70 bytes to memory. Any thoughts?
以下为原文
dma_driver.c
add:
uint8 table[1000];
and change
35 CyDmaTdSetAddress(DMA_1_TD[0], LO16((uint32)ADC_SAR_WRK0_PTR), LO16((uint32)CYDEV_SRAM_BASE));
to:
35 CyDmaTdSetAddress(DMA_1_TD[0], LO16((uint32)ADC_SAR_WRK0_PTR), LO16((uint32)table));
you will see isr_DMA_Done interrupt.