⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adc12_temp.c

📁 MSP449学习板ADC试验程序
💻 C
字号:
//******************************************************************************
//  MSP430-TEST44X Demo - ADC12, 转换内部的温度二极管电压
// 本例展示了如何使用内部的温度二极管去测量温度,
//
//                MSP430F449
//             -----------------
//         /|\|              XIN|-
//          | |                 | 32768HZ
//          --|RST          XOUT|-
//            |                 |
//            |A10              |
//
//
// 转换结果可以通过设定的变量查看
//
// 调试 IAR Embedded Workbench Version: 3.41A
//******************************************************************************


#include          "msp430x44x.h" 

unsigned int ADCresult; 
unsigned long int DegC, DegF;

void main(void)
{ 
  unsigned int i;
  WDTCTL = WDTPW+WDTHOLD;                       // 停止看门狗定时器
  ADC12CTL0 = ADC12ON+REFON+REF2_5V+SHT0_6;     // 设置 ADC12, 参考电压,采样时间
  ADC12CTL1 = SHP;                              // 用采样定时器
  ADC12MCTL0 = INCH_10+SREF_1;                  // 选择通道 A10, Vref+
  ADC12IE = 0x01;                               // 使能ADC12IFG.0

  for (i=0; i<0x3600; i++)                      //延时等待参考稳定
  {
  }

  ADC12CTL0 |= ENC;                             //使能转换
  _EINT();                                      // 使能中断

  while(1)
  {
    ADC12CTL0 |= ADC12SC;                       // 开始转换
    _BIS_SR(LPM0_bits);                         // 进入LPM0
    DegC = ((((long)ADCresult-1615)*704)/4095);
    DegF = ((DegC * 9/5)+32);                   // 
   _NOP();                                   
  }
}
#pragma vector=ADC_VECTOR
__interrupt void ADC12ISR (void)
{
  ADCresult = ADC12MEM0;                       // 读取结果
  _BIC_SR_IRQ(LPM0_bits);                      // 清 LPM0
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -