[求助] 请各位前辈指导

杜大壮   2011-10-27 11:39 楼主

#include "msp430x41x2.h"

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  ADC10CTL0 = SREF_1 + ADC10SHT_2 + REFON + ADC10ON + ADC10IE;
  TACCR0 = 30;                              // Delay to allow Ref to settle
  TACCTL0 |= CCIE;                          // Compare-mode interrupt.
  TACTL = TASSEL_2 + MC_1;                  // TACLK = SMCLK, Up mode.
  __bis_SR_register(CPUOFF + GIE);          // LPM0, TA0_ISR will force exit
  TACCTL0 &= ~CCIE;                         // Disable timer Interrupt
  ADC10AE0 |= 0x01;                         // P7.4 ADC option select
  P5DIR |= 0x02;                            // Set P5.1 to output direction

  for (;;)     
  {
    ADC10CTL0 |= ENC + ADC10SC;             // Sampling and conversion start
    __bis_SR_register(CPUOFF + GIE);        // LPM0, ADC10_ISR will force exit
    if (ADC10MEM < 0x88)                    // ADC10MEM = A0 > 0.2V?
      P5OUT &= ~0x02;                       // Clear P5.1 LED off
    else
      P5OUT |= 0x02;                        // Set P5.1 LED on
  }
}

我想请问 ADC10MEM<0x88   是什么意思? 和后面注释里  ADC10MEM = A0 > 0.2V 是怎么对应的?

我是初学者,问题可能比较基础,忘前辈们指导。

[ 本帖最后由 杜大壮 于 2011-10-27 13:40 编辑 ]

回复评论 (5)

引用: 原帖由 杜大壮 于 2011-10-27 11:39 发表 下面是我截取的一段程序: for (;;) { ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start __bis_SR_register(CPUOFF + GIE); // LPM0, ADC10_ISR will force ...

 

这个你得结合#include的.h头文件来看才行

点赞  2011-10-27 12:37
__bis_SR_register(CPUOFF + GIE);
这个应该是INTRINTS 里面的吧?
ADC10MEM < 0x88这个你应该看看你的输入电压范围和参考电压。将0.2V转换成ADC的只应该就是0X88吧。
点赞  2011-10-27 12:43
我把问题重新编辑了下 ,希望前辈们指点迷津。不胜感谢!
点赞  2011-10-27 13:41

同问啊 同问

我也有相同的困惑,  if (ADC10MEM < 0x88) // ADC10MEM = A0 > 0.2V?
0x88怎么也对应不上0.2V吧  而且也没有查到,请大神们讲一下,感谢万分
点赞  2012-11-22 21:53
0x3FF : 0x88 = V : 0.2

V=1.5

所以0x88是參考電壓1.5的時後,轉換出0.2V的值,沒錯
点赞  2012-11-23 13:45
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复