尊敬的团队:
我正在测量提供给 ADC 的经滤波的平均直流电压(浮点值)。 我正在向4个 ADC (A0、B0、A1、B1)发送4个电压。 当我开始时、所有值应该相同、并且我 得到的值相同。 但是、当我开始更改一个特定的电压时、相应的 ADC 计数应该会发生变化、但与之一起、ADC 引脚旁边的引脚也会缓慢变化。 我不知道其他 ADC 读数为何会受到一个 ADC 引脚输入变化的影响。
假设我改变 A0输入、A1缓慢漂移、与 B0和 B1相同。 但不介于 A0和 B0或 A1和 B1之间。 您能告诉我原因是什么吗? 我随附了与 ADC 相关的部分代码、如果有任何问题、请告知我。
谢谢、
void main (void)
{
.
AdcRegs.ADCTRL1.All = 0;
AdcRegs.ADCTRL1.bit.ACQ_PS = 0x7;// ADC 模块周期中的 S/H 宽度= 8个 ADC 时钟
AdcRegs.ADCTRL1.bit.CONT_RUN = 1;//设置连续运行
AdcRegs.ADCTRL1.bit.SEQ_CASC = 0x1;//级联模式
AdcRegs.ADCTRL3.bit.ADCCLKPS= 0x1;// ADCCLK (FCLK)=HSPCLK/(2*ADCCLKPS)=25.0MHz/(1*2)=12.5MHz 对于 ADCCLKPS=1
AdcRegs.ADCTRL3.bit.SMODE_SEL = 0x1;//同时采样模式
AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0;//A0和 B0
AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x1;//A1和 B1
AdcRegs.ADCMAXCONV.ALL = 0x0001;//用于4个 ADC 输入
三、会议的报告
for (;;)
{
asm (" NOP");
}
}
中断空 CPU_timer0_ISR (空)
{
三、会议的结果
AdcRegs.ADCTRL2.all = 0x2000;
while (AdcRegs.ADCST.bit.INT_SEQ1=0){}
AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1;
temp = AdcRegs.ADCRESULT0 >>4;
V1 =温度;
temp = AdcRegs.ADCRESULT1 >>4;
V2 =温度;
temp = AdcRegs.ADCRESULT2 >>4;
V3 =温度;
temp = AdcRegs.ADCRESULT3 >>4;
v4 =温度;
三、会议的报告
}