Bob、您好!
我很抱歉,因为我没有尽快回复。 我生病了一段时间... 是的、连续转换是可以接受的、因为它的时间偏移非常小。 我花了一些时间来实施您的建议并成功实施。 我使用乒乓模式从序列发生器0 FIFO 中捕获6个 ADC 样本、在 DMA 配置中输入1024的传输大小、并且能够以大约7.8uS 的偏移对6个通道进行采样、因为我将采样率设置为128KHz… 我要将1024大小的乒乓缓冲器分为6个分别为128大小的独立缓冲器、并对其中每个缓冲器执行 FFT。 结果几乎正确。 但缓冲器排序不正确、结果在缓冲器中不断变化。。。就像向3个输入提供方波、向3个输入提供正弦波... 我希望各自的缓冲器具有该波形...但它会发生变化...首先它具有方形、然后是正弦波...就像这样...因为我没有使用散聚。 下面是 SS0的配置方式以及如何从乒乓缓冲器(未排序)获取数据:
ADCSequenceStepConfigure (ADC0_BASE、0、0、ADC_CTL_CH2); ADCSequenceStepConfigure (ADC0_BASE、0、1、ADC_CTL_CH3); ADCSequenceStepConfigure (ADC0_BASE、0、2、ADC_CTL_CH0); ADCSequenceStepConfigure (ADC0_BASE、0、3、ADC_CTL_CH1); ADCSequenceStepConfigure (ADC0_BASE、0、4、ADC_CTL_CH14); ADCSequenceStepConfigure (ADC0_BASE、0、5、ADC_CTL_CH15 | ADC_CTL_IE | ADC_CTL_END);
提取:
对于(m = 0;m < 128;m++) { fftin1[m]= g_ui8RxBufB[6*m]; fftin2[m]= g_ui8RxBufB[6*m+1]; fftin3[m]= g_ui8RxBufB[6*m+2]; fftin4[m]= g_ui8RxBufB[6*m+3]; fftin5[m]= g_ui8RxBufB[6*m+4];
fftin6[m]= g_ui8RxBufB[6*m+5]; }
但在上面,您说过使用散聚模式对6个不同缓冲区中的样本进行排序以进行开槽。 老实说,我现在不知道这种模式。 我将从数据表中了解这种模式,并尝试为此编写一些代码....
感谢您的所有帮助、...只是有一个小问题需要问...如果您或阅读此内容的任何其他人可以提供一些有关实施散聚的示例。
此致、
Harshul Agarwal