You may use a PSoC4-M which has got DMA. So you can shovel the data to a buffer and work on it while the next data gets sampled and transmitted. This requires after setup no CPU intervention except the interrupt handling.
Reading (as recommended) the result registers directly in an eoc handler woud be quite suficient.
for (chan = 0;chan < MAXCHANNELS; chan++)
*ResultVector++ = CY_GET_REG32((reg32 *)(ADC_SAR_SAR_CHAN_RESULT_IND + (uint32)(chan << 2u))) &
You can set for a file the compiler optimization individually, so the rest of the project can be debugged.
Thanks Bob for the quick response.
POSC-4M sounds interesting. Time for me to take a deeper look at it.
Meanwhile, the method above for reading the ADC registers directly, has reduced the channel read time from 1us to 189ns! It works well enough for me to ignore the M for some more time. Feeling Happy :)