你好。
我对 TMS320F2808 ADC 有疑问。
默认设置如下所示。
AdcRegs.ADCTRL1.bit.reset = 1U;
InitAdc ();//对于此示例,初始化 ADC
AdcRegs.ADCTRL1.bit.ACQ_PS = 0x0fU;
AdcRegs.ADCTRL3.bit.ADCCLKPS= 1U;
AdcRegs.ADCTRL1.bit.SEQ_CASC = 1U;// 1级联模式
AdcRegs.ADCMAXCONV.BIT.MAX_CONV1 = 10U;
AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0U;
AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x1U;
AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 0x2U;
AdcRegs.ADCCHSELSEQ1.bit.CONV03 = 0x3U;
AdcRegs.ADCCHSELSEQ2.bit.CONV04 = 0x4U;
AdcRegs.ADCCHSELSEQ2.bit.CONV05 = 0x5U;
AdcRegs.ADCCHSELSEQ2.bit.CONV06 = 0x6U;
AdcRegs.ADCCHSELSEQ2.bit.CONV07 = 0x8U;
AdcRegs.ADCCHSELSEQ3.bit.CONV08 = 0x9U;
AdcRegs.ADCCHSELSEQ3.bit.CONV09 = 0x0AU;
AdcRegs.ADCTRL1.bit.CONT_RUN = 1U;//设置连续运行
AdcRegs.ADCTRL2.all = 0x2000U;
AdcRegs.ADCTRL1.bit.RESET = 0U;
然后是下一个
void main (void)
{
while (1)
{
if (10msCycleTmr!= sPrevIntAdcCycle)// 10ms 周期
{
if (AdcRegs.ADCST.bit.INT_SEQ1 == 1U)
{
RegisterVal[0]=(AdcRegs.ADCRESULT0 >> 4);
RegisterVal[1]=((AdcRegs.ADCRESULT1 >>4));
RegisterVal[2]=((AdcRegs.ADCRESULT2>> 4));
RegisterVal[3]=((AdcRegs.ADCRESULT3 >>4));
RegisterVal[4]=((AdcRegs.ADCRESULT4 >>4));
RegisterVal[5]=((AdcRegs.ADCRESULT5 >> 4));
RegisterVal[6]=((AdcRegs.ADCRESULT6>> 4));
RegisterVal[7]=(AdcRegs.ADCRESULT7 >> 4);
RegisterVal[8]=(AdcRegs.ADCRESULT8>> 4);
RegisterVal[9]=(AdcRegs.ADCRESULT9>> 4);
AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1U;
}
sPrevIntAdcCycle = 10msCycleTmr;
}
}
}
我将像这样测量 ADC。
AdcRegs.ADCRESULT 的值是否可以转换为中间值而不是最终值?
我想知道 AdcRegs.ADCRESULT 是否仅显示完成的值。
谢谢你