mingyuekd 发表于 2010-7-13 16:01

msp149 8通道AD采集辣手问题

片子是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      OUTVR+=VEREF
   ADC12MCTL1 |=0x020;                  //sel channel A1 Sref=1      OUTVR+=VEREF
   ADC12MCTL2 |=0x022;                  //sel channel A2 Sref=1      OUTVR+=VEREF
   ADC12MCTL3 |=0x023;                  //sel channel A3 Sref=1      OUTVR+=VEREF
   ADC12MCTL4 |=0x024;                  //sel channel A4 Sref=1      OUTVR+=VEREF
   ADC12MCTL5 |=0x025;                  //sel channel A5 Sref=1      OUTVR+=VEREF
   ADC12MCTL6 |=0x026;                  //sel channel A6 Sref=1      OUTVR+=VEREF
   ADC12MCTL7 |=0x027;                  //sel channel A7 Sref=1      OUTVR+=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通道一切就正常了。
页: [1]
查看完整版本: msp149 8通道AD采集辣手问题