ADC的转换结果可以在两处寄存器处获得:(1)ADC结果寄存器,(2)ADC结果镜像寄存器(ADC_RESULT_MIRROR_REGS)。这俩有两处区别: 1.DSP片上ADC是12位数字量: (1)ADC结果寄存器中高12位为转换结果,使用时需要软件主动右移4位; (2)ADC结果镜像寄存器中就是转换结果,不需要右移; 2.CPU访问ADC结果寄存器有等待时间(...
volatile struct ADC_REGS AdcRegs; 此时在应用程序中就只需要像例程adc_soc中的源文件Example_2833xAdcSoc.c一样进行如下操作: Voltage1[ConversionCount] = AdcRegs.ADCRESULT0 >>4; 移4位的原因是如上所说,16位的左对齐需要得到最终的12位结果。 同理,对于PF0,TI也定义了一个ADC_RESULT_MIRROR_REGS Adc...
登录后复制AdcRegs.ADCCHSELSEQ1.bit.CONV00=0x02U; // Setup ADCINA0as1st SEQ1conv.AdcRegs.ADCCHSELSEQ1.bit.CONV01=0x03U;AdcRegs.ADCCHSELSEQ1.bit.CONV02=0x00U;AdcRegs.ADCCHSELSEQ1.bit.CONV03=0x01U;ADCINA2- > AdcRegs.ADCRESULT0;ADCINA3- > AdcRegs.ADCRESULT1;ADCINA0- > Adc...
AdcbRegs.ADCSOC5CTL.bit.CHSEL =5;// channel; //SOC0 will convert pin A0 AdcbRegs.ADCSOC5CTL.bit.ACQPS = acqps; //sample window is 100 SYSCLK cycles AdcbRegs.ADCSOC5CTL.bit.TRIGSEL = 5; AdccRegs.ADCSOC2CTL.bit.CHSEL =2;// channel; //SOC0 will convert pin A0 Adcc...
这样说吧:采样结果= 0x7FF0 那么实际采样值应该是0x7FF(高12位为采样结果),应该是应该是对应AD口 的 1.5V的电压值,这个电话对应的实际电压一般是0V,大于这个(0x8000及以上),我们认为是大于0V的一个电压,少于这个我们认为少于0V的一个电压(负压),所以AdcRegs.ADCRESULT0^0x8000 ...
因为F28x的ADC有16个模拟量输入管脚,所以对应的结果寄存器也有16个,即AdcRegs.ADCRESULTx,x的值从0到15。F28x片上自带的AD是12位精度,但是结果寄存器是16位的,这就涉及到存储的问题:器件手册规定,12位的转换结果保存在结果寄存器的高12位,即bit15是MSB,bit4是LSB,而低4位是无效的位,其存储示意如图1所示:...
总共有16个结果寄存器Result Reg0—Result Reg15,用于分别保存16个通道的转换结果。 2812 ADC的功能 1.12位的ADC内核,内置2个采样保持器(S/H-A,S/H-B)。 2.采样模式可以为顺序采样(Sequential Sampling)或者是同步采样(Simultaneous Sampling) 3.模拟输入范围为0—3V(需要注意,输入不可超过3V,否则烧坏2812)一般...
while( AdcRegs.ADCSOCFLG1.bit.SOC1 == 1 )[]Sum += AdcResult.ADCRESULT15;index+=16;] //...
可是RESULT0的值一值在1000~2000之間隨意變動,可變電阻完全無功用 如果把ADCINA2的電壓移除結果也一樣,照理來說不送入電壓RESULT應該為0才對 以下為程序 #include "DSP2833x_Device.h" #include "DSP2833x_Examples.h" #define LED GpioCtrlRegs.GPADIR.all void InitADC(void); void InitADC()[ AdcRegs....
&(DMA_Descriptor_ADCtoSRAM), ADCtoSRAM, (constvoid*) &(ADC_REGS->ADC_RESULT), (constvoid...