详细注释,求为何不能获取AD数值

2019-03-24 12:53发布

  1. #include .h>
  2. static unsigned int FirstADCVal = 0;            // ADC储存变量
  3. #define ADCDeltaOn       3                  // 2摄氏度误差比较量
  4. int main(void){  WDTCTL = WDTPW + WDTHOLD;                 // 关闭看门狗  ADC10CTL1 = ADC10DIV_3 + INCH_10 + SHS_1 + CONSEQ_2;  /*   * 分频 1/4   * 输入端 内部温度传感器   * 采样保持源 Timer_A.OUT1   * 采样方式 单通道重复采样   */  ADC10CTL0 = SREF_1 + ADC10SHT_3 + REF2_5V + REFON + ADC10ON;  /*   * 基准源 Vr = Vref+ Vr- = Vss   * 采样时间 64*ADC10CLK   * REF2_5V 2.5V参考电压   * REFON 开启参考电压   * ADC10ON AD使能   */  ADC10CTL0 |= ENC;//转换使能  P1DIR = 0x01;                             // P1.0 输出
  5.   for (;;){          if(FirstADCVal == 0){          FirstADCVal = ADC10MEM;                   // 读取首次的数值,或者数值未能正确读取          }else{                  if(ADC10MEM >= ADCDeltaOn + FirstADCVal){                          P1OUT |= BIT0;                  }else{                          P1OUT &=~ BIT0;                  }          }  }}
复制代码 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
haytick
2019-03-25 03:52
#include .h>


static unsigned int FirstADCVal = 0;            // ADC储存变量


#define ADCDeltaOn       3                  // 2摄氏度误差比较量


int main(void)

{

  WDTCTL = WDTPW + WDTHOLD;                 // 关闭看门狗

  ADC10CTL1 = ADC10DIV_3 + INCH_10 + SHS_1 + CONSEQ_2;

  /*

   * 分频 1/4

   * 输入端 内部温度传感器

   * 采样保持源 Timer_A.OUT1

   * 采样方式 单通道重复采样

   */

  ADC10CTL0 = SREF_1 + ADC10SHT_3 + REF2_5V + REFON + ADC10ON;

  /*

   * 基准源 Vr = Vref+ Vr- = Vss

   * 采样时间 64*ADC10CLK

   * REF2_5V 2.5V参考电压

   * REFON 开启参考电压

   * ADC10ON AD使能

   */

  ADC10CTL0 |= ENC;//转换使能

  P1DIR = 0x01;                             // P1.0 输出


  for (;;){
         ADC10CTL0 |= ENC + ADC10SC;
while (ADC10CTL1 & BUSY);
          if(FirstADCVal == 0){

          FirstADCVal = ADC10MEM;                   // 读取首次的数值,或者数值未能正确读取

          }else{

                  if(ADC10MEM >= ADCDeltaOn + FirstADCVal){

                          P1OUT |= BIT0;

                  }else{

                          P1OUT &=~ BIT0;

                  }

          }

  }

}

应该是这个问题。
要的话,可以加 interrupt

一周热门 更多>

相关问题

    相关文章