📄 adc12_temp.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 + -