|
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)
- }
复制代码 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|