Changer119 发表于 2010-10-20 22:29:22

MSP430 ADC10模块中的ADC10AE0的作用??

Hi 大家好!

我现在应用msp430 2xxx系列中的ADC10模块进行采样,但不大清楚该模块中的ADC10AE0寄存器的作用,大家能说说你们都怎么认识和使用这个寄存器的??

下面说说我的认识:按照datasheet中的说法,ADC10AE0是模拟输入通道使能寄存器,某位置1表示使能对应通道的模拟输入通道,为0则禁止对应通道输入作用。但我在编程中从来都没有用到该寄存器(即默认所有位为0),貌似采样后的结果也很正常。我在程序中选择某一模拟输入通道是通过INCH_x来实现的。对于TI的例程,选择模拟通道好像是用的ADC10AE0来实现的。请问ADC10AE0和INCH_x有啥区别呢???

下面附上TI的一个例程:

//                MSP430F22x4
//             -----------------
//         /|\|            XIN|-
//          | |               |
//          --|RST          XOUT|-
//            |               |
//      >---|P2.0/A0      P1.0|-->LED
//
//A. Dannenberg
//Texas Instruments Inc.
//April 2006
//Built with CCE Version: 3.2.0 and IAR Embedded Workbench Version: 3.41A
//******************************************************************************
#include "msp430x22x4.h"

void main(void)
{
WDTCTL = WDTPW + WDTHOLD;               // Stop WDT
ADC10CTL0 = ADC10SHT_2 + ADC10ON + ADC10IE; // ADC10ON, interrupt enabled
ADC10AE0 |= 0x01;                      // P2.0 ADC option select
P1DIR |= 0x01;                            // Set P1.0 to output direction

for (;;)
{
    ADC10CTL0 |= ENC + ADC10SC;             // Sampling and conversion start
    __bis_SR_register(CPUOFF + GIE);      // LPM0, ADC10_ISR will force exit
    if (ADC10MEM < 0x1FF)
      P1OUT &= ~0x01;                     // Clear P1.0 LED off
    else
      P1OUT |= 0x01;                        // Set P1.0 LED on
}
}

// ADC10 interrupt service routine
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR(void)
{
__bic_SR_register_on_exit(CPUOFF);      // Clear CPUOFF bit from 0(SR)
}

Changer119 发表于 2010-10-21 13:22:44

没人帮忙解释一下吗?

jwxcelebrate 发表于 2010-11-2 14:32:42

回复【1楼】Changer119
-----------------------------------------------------------------------

一个是模拟输入通道,一个是转换通道,不一样的!

first_blood 发表于 2010-11-5 21:01:57

主要是P2口为数字cmos门电路,当模拟输入电压在CMOS的门限电压附近时,会产生寄生电流,关闭CMOS的输入输出,改为模拟输入,可以减少这个电流,datasheet上有说,当然不关闭对AD采集没什么影响,上面的例程中默认采集P2.0,对应通道INCH_0,是芯片复位的默认值,所以它没有显式的赋值,低功耗真是没的说
页: [1]
查看完整版本: MSP430 ADC10模块中的ADC10AE0的作用??