3036|3

5

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

详细注释,求为何不能获取AD数值 [复制链接]

  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;

    }

    }

    }

    }

复制代码

最新回复

#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  详情 回复 发表于 2013-2-27 11:38

点评

你木有这个ADC10CTL0 |= ENC + ADC10SC;  详情 回复 发表于 2013-1-22 09:23
 
点赞 关注

回复
举报

25

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
程序似乎不完整,
我也是新手,仅供参考,大家一起学习!

[ 本帖最后由 xiangyuansu 于 2013-1-21 15:52 编辑 ]
 
 

回复

17

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

回复 楼主 uotiahub 的帖子

你木有这个ADC10CTL0 |= ENC + ADC10SC;
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(中级)

4
 
#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
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
【干货上新】电源解决方案和技术第二趴 | DigiKey 应用探索站
当月好物、电源技术资源、特色活动、DigiKey在线实用工具,干货多多~

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表