1968|0

6828

帖子

0

TA的资源

五彩晶圆(高级)

楼主
 

MSP430F149内部温度传感器的应用编程 [复制链接]

啥也不说了,直接给出程序:
//检测MSP430F149内部温度传感器
#include
#define uint unsigned int
#define uchar unsigned char
static uchar adc_flag=0;
uint AD_TEMP=0;
void int_clk()
{
  uchar i;
  BCSCTL1&=~XT2OFF;                         //打开XT振荡器
  BCSCTL2|=SELM1+SELS;                      //MCLK 8M and SMCLK 1M
  do
  {
    IFG1&=~OFIFG;                           //清除振荡错误标志
    for(i=0;i<100;i++)
      _NOP();                               //延时等待
  }while((IFG1&OFIFG)!=0);                  //如果标志为1,则继续循环等待
  IFG1&=~OFIFG;
}
int_adc()
{
  ADC12CTL0|=ADC12ON+SHT1_2+REF2_5V+REFON;  //ADC12开启;
                                            //采样保持时间为16个ADC12CLK;
                                            //2.5V参考电压,参考电压模块打开
  ADC12CTL1|=CSTARTADD_10+ADC12SSEL1+ADC12SSEL0;
                                            //时钟源选择SMCLK
  ADC12MCTL10=SREF_1+INCH_10;               //选择内部温度传感器
  ADC12IE|=0x0400;                          //使能转换中断
  ADC12CTL0|=ENC;                           //使能A/D转换
}
#pragma vector=ADC_VECTOR
__interrupt void ADC12ISR(void)
{
  while(( ADC12CTL1&0x01)==1);              //A/D转换忙信号等待
  adc_flag=1;                               //转换完成标志
  AD_TEMP=ADC12MEM10;                       //读入A/D转换结果
}
void main(void)
{
  WDTCTL=WDTPW+WDTHOLD;                     //关闭看门狗
  int_clk();                                //系统时钟初始化
  int_adc();                                //初始化ADC模块
  _EINT();                                  //使能中断
  adc_flag=1;
  while(1)
  {
    while(adc_flag==1)
    {
      ADC12CTL0|=ADC12SC;                   //开启转换
      ADC12CTL0&=~ADC12SC;
      adc_flag=0;                           //清中断标志
    }
  }
}

 
点赞 关注

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

北京市海淀区中关村大街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
快速回复 返回顶部 返回列表