我正在测试示例软件 ADC_SoC_Continuous_cpu01、以从连接到 ADC 引脚的函数发生器获取正弦波(我正在使用 launchxl 板)。
在此程序中、触发 SOC 0至7、然后 EOC6触发 SOC 8至15、因此第二组 SOC 开始采集、而结果0至7存储在缓冲器中; EOC14触发 SOC 0至7、这些 SOC 开始采集、而结果8至15存储在缓冲区中;该周期重复、直到缓冲区已满。
发送到 ADC 的信号是频率为50kHz 的正弦波。 下图显示了采集结果:
您可以看到、SOC8的结果始终存在问题。 我尝试通过对这些行进行注释来排除 SOC8
//AdcaRegs.ADCINTSOCSEL2.bit.SOC8 = 1;
在 configureADC()例程中,和
//AdcaResults[resultsIndex++]= AdcaResultRegs.ADCRESULT8;
在 main()中,即首先触发 SOC 0至7,第二触发 SOC 9至15,不使用 SOC8。 通过这种方式、我获得正确的结果:
我已验证我在 ADCA、ADCB 和 ADCC 中的 SOC8有相同的问题。 此外、我有两个 launchxl 板、我对这两个板都有相同的问题。
是否有人可以解释这个奇怪的错误以及如何解决(如果可能)?
此致、
弗朗西斯科