打印

msp149 8通道AD采集辣手问题

[复制链接]
1451|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mingyuekd|  楼主 | 2010-7-13 16:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
片子是149型号,之前调单路P6.0通道ad采集,一切正常,
现在要采集8路ad,用P6脚 序列多通道多次转换,初始化如下。调试发现,AD1通道依旧正常,AD2...AD8采集数不正确。望哪位朋友赐教。谢谢
  P6DIR =0x00;                          //p6=input
     P6SEL = 0xff;                        // Enable A/D channel A0 A1 A2 A3 ....A7
      ADC12MCTL0 |=0x020;                    //  sel channel A0 Sref=1        OUT  VR+=VEREF
     ADC12MCTL1 |=0x020;                    //  sel channel A1 Sref=1        OUT  VR+=VEREF
     ADC12MCTL2 |=0x022;                    //  sel channel A2 Sref=1        OUT  VR+=VEREF
     ADC12MCTL3 |=0x023;                    //  sel channel A3 Sref=1        OUT  VR+=VEREF
     ADC12MCTL4 |=0x024;                    //  sel channel A4 Sref=1        OUT  VR+=VEREF
     ADC12MCTL5 |=0x025;                    //  sel channel A5 Sref=1        OUT  VR+=VEREF
     ADC12MCTL6 |=0x026;                    //  sel channel A6 Sref=1        OUT  VR+=VEREF
     ADC12MCTL7 |=0x027;                    //  sel channel A7 Sref=1        OUT  VR+=VEREF
     //ADC12MCTL7 |=0x080;                    // set channel A7 last time
     
    ADC12CTL0 = ADC12ON;//+SHT0_0;//+SHT1_0;
    ADC12CTL0 |= 0x0080;                   //MSC=1
      ADC12CTL1 = SHP;                      // Use sampling timer /ADC12OSC
    ADC12CTL1 |= 0x0008;                      // ADC12SSEL=1 Use sampling timer /ACLK
    ADC12CTL1 |= 0x0006;                      //mult channel conseq   continue ad
    ADC12CTL0 |= ENC;                     // Enable conversions
    ADC12CTL0 |= ADC12SC;                     // Start conversion

相关帖子

沙发
mingyuekd|  楼主 | 2010-7-14 08:44 | 只看该作者
怎么没人回复啊。求版主发话了。

使用特权

评论回复
板凳
李冬发| | 2010-7-16 21:01 | 只看该作者
好象不是这样初始化的吧。

#define P6OUT_INIT      0xff
#define P6SEL_INIT      0xff            // P6-Modules:A0,A1,A2,A3,A4,A5,A6,A7 ADC option select
#define P6DIR_INIT      0                        // Init of Port6 Data-Direction Reg (Out=1 / Inp=0)


ADC12CTL0 = ADC12ON | MSC | REF2_5V | REFON | SHT0_DIV8;                // Turn on ADC12, RefV = 2.5V,set sampling time 8us
ADC12CTL1 = SHP | ADC12DIV_7 | ADC12SSEL_MCLK | CONSEQ_1;                // Use sampling timer, single sequence

ADC12MCTL0 = SREF_VREF_AVSS | INCH_0;                                // VR+ = VREF+ and VR-= AVSS, channel = A0
ADC12MCTL1 = SREF_VREF_AVSS | INCH_1;               // VR+ = VREF+ and VR-= AVSS, channel = A1
ADC12MCTL2 = SREF_VREF_AVSS | INCH_7;                                // VR+ = VREF+ and VR-= AVSS, channel = A7(BATT)
ADC12MCTL3 = SREF_VREF_AVSS | INCH_TEMP;                        // VR+ = VREF+ and VR-= AVSS, channel =  Temperature diode
ADC12MCTL4 = SREF_VREF_AVSS | INCH_VCC2 | EOS;                //  VR+ = VREF+ and VR-= AVSS, channel = (AVCC - AVSS) / 2, end seq.

ADC12IE = BIT4;             // Enable ADC12IFG.4
ADC12CTL0 |= ENC;           // Enable conversions

使用特权

评论回复
地板
mingyuekd|  楼主 | 2010-7-17 18:27 | 只看该作者
谢谢3楼回复,按你那样初始化按寄存器名定义,看起来方便,
问题也解决,初始化没修改,在采集时加了ADC12MCTL7 &=~0x080;     //继续采集语句,
8通道一切就正常了。

使用特权

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

本版积分规则

58

主题

151

帖子

0

粉丝