無法控制ADCRESULT值
各位高手大家好
小弟我把3.3V的PIN腳透過可變電阻分壓得到0~1.7的電壓,將此電壓接在ADCINA2的PIN腳
可是RESULT0的值一值在1000~2000之間隨意變動,可變電阻完全無功用
如果把ADCINA2的電壓移除結果也一樣,照理來說不送入電壓RESULT應該為0才對
而且為何RESULT0~RESULT15皆有值,這不合理吧?
以下為程序
#include "DSP2833x_Device.h"
#include "DSP2833x_Examples.h"
#define LED GpioCtrlRegs.GPADIR.all
void InitADC(void);
void InitADC(){
AdcRegs.ADCMAXCONV.all=1;
AdcRegs.ADCCHSELSEQ1.bit.CONV00=2;
AdcRegs.ADCTRL1.all=0x0270;
AdcRegs.ADCTRL3.all=0x00E0;
AdcRegs.ADCTRL2.all = 0x2000;
}
int main(void) {
EALLOW;
SysCtrlRegs.HISPCP.all = 0x3;//HSPCLK = SYSCLKOUT/(2*ADC_MODCLK)=150M/2*3=25M
SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1;//Enable ADC peripheral clock
EDIS;
InitSysCtrl();
DINT;
IER=0x0000;
IFR=0x0000;
InitADC();
InitPieCtrl();
InitPieVectTable();
while(1){
EALLOW;
DELAY_US(100000);
DELAY_US(100000);
LED=AdcRegs.ADCRESULT0>>4;
EDIS;
}
}
可以請各位高手幫小弟解惑嗎??
28335 的 ADC 的性能还是可以的. 看情况设置有误吧, 再仔细检查一下初始化的配置吧
你好,
输入电压跟得到的转换出来的结果完全无关,这个应该是内部配置的问题。内部配置好之后,建议你用一个参考电压作为输入来检验是否能够正常采集输入信号。
Best regards,
Sulyn Zhang
所以輸入接在ADCINA是沒錯的?
因為一直沒反應開始懷疑是不是輸入接錯
Chien 你好!
看起来你这个问题涉及到C2000,建议你把这个帖子转到C2000相关的贴吧里面去,里面C2000的技术支持会更专业。谢谢
Best regards,
Sulyn Zhang