打印

一个ADC的问题!大侠帮忙

[复制链接]
2299|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qinbin87025|  楼主 | 2011-10-15 10:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的是PIC33fjmc204的单片机。
下面是一个ADC的初始化程序,请问这样初始化后,用了那几路输入ANx?几个通道同时采样转换的结果在ADC1BUFx中按怎样的方式存的啊?里面的值是不是要及时取?
我刚学请解说?
void init_ad(void)
{  
  //////////1//////////
   AD1PCFGL=0xFFFF;
   AD1PCFGLbits.PCFG0 =0;     //0采样引脚电压
   AD1PCFGLbits.PCFG1 =0;
   AD1PCFGLbits.PCFG2 =0;
   AD1PCFGLbits.PCFG3 =0;
   AD1PCFGLbits.PCFG4 =0;
   AD1PCFGLbits.PCFG5 =0;
   AD1PCFGLbits.PCFG6 =0;
   AD1PCFGLbits.PCFG7 =0;
//////////2////////
   _VCFG =0b000;
//////////3///////////////
   AD1CON3bits.ADRC=0;      //0 = 时钟由系统时钟产生
   AD1CON3bits.SAMC=0b0010;  //自动采样时间位:xx个tad
   AD1CON3bits.ADCS=4;       //ADC 转换时钟选择位:(xx+1)*tcy=tad
// AD1CON3bits.ADRC=0;       //1 = ADC 内部RC时钟
////////4//////////////////////   
   AD1CON2bits.CHPS=0b11;    //00:ch0 01:ch0,ch1 1x:ch0,ch1,ch2,必须AD12B=0才有效
   AD1CON2bits.SMPI=0b0001;  //0b1111:第十六次采样后产生中断
   AD1CON2bits.CSCNA=0;      //0:不扫描  1:扫描
/////////////5//////////////////
   AD1CON1bits.SSRC=0b111;
///////////6///////
   AD1CON1bits.AD12B=0;
  AD1CON1bits.FORM=0b00;
//////////////7/////////
   AD1CON1bits.ASAM=1;//采样结束后自动采样
   AD1CON1bits.SAMP=0;//同时采样ch0,ch1,ch2,ch3
   AD1CON1bits.SIMSAM=1;     //0:顺序采样多通道 1:同时采样碰通道
   
   AD1CON2bits.ALTS=1;       //1 = 在第一次采样时使用采样多路开关A选择的输入通道,而在下一次采样时使用采样多路开关B选择的输入通道
   AD1CSSL=0;
   AD1CSSLbits.CSS1=1;        //1:扫描   0:不扫描
//////////8//////                             
   AD1CHS0bits.CH0NA=0;       //ch0的反相输入为VREF-
   AD1CHS0bits.CH0SA=6;       //ch0同相输入AN6
   AD1CHS0bits.CH0SB=7;       //多路开关B ch0同相输入AN7
   AD1CHS123bits.CH123SA=1;   //多路开关A 1 = CH1 的同相输入为AN3, CH2 的同相输入为AN4, CH3 的同相输入为AN5
   AD1CHS123bits.CH123SB=0;   //多路开关B CH1 的同相输入为AN0, CH2 的同相输入为AN1, CH3 的同相输入为AN2
   
////////////9////////////////   
   IFS0bits.AD1IF=0;
   _AD1IP=5;
   IEC0bits.AD1IE=1;

中断里这样取值是什么意思?假设下面变量是定义了的。
void __attribute__((interrupt, auto_psv)) _ADC1Interrupt(void)
{
  Vad[4]=(ADC1BUF2*3.3/1024.0);     //ADC1BUFx是映射寄存器共16个
  Vad[0]=(ADC1BUF5*3.3/1024.0);      
   IFS0bits.AD1IF=0;
}            
求解释!谢谢!我刚学啊啊

}
沙发
qinbin87025|  楼主 | 2011-10-17 18:26 | 只看该作者
补充点:我是想知道取样后的转换结果是按怎么的对应关系存到ADC1BUFx里面的?

求帮忙!!!1

使用特权

评论回复
板凳
yewuyi| | 2011-10-17 21:58 | 只看该作者
这种问题求人不如求自己,一般不会有人去帮你看数据手册的。

所以最好还是自己看数据比较快点。

使用特权

评论回复
地板
qinbin87025|  楼主 | 2011-10-19 15:25 | 只看该作者
我已经搞定了呵呵!

使用特权

评论回复
5
yewuyi| | 2011-10-19 16:43 | 只看该作者
我已经搞定了呵呵!
qinbin87025 发表于 2011-10-19 15:25


事实再次证明,这样的问题确实是靠人不如靠自己来的更快。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

6

帖子

1

粉丝