📄 3_8_2_3.c
字号:
#include "MSP430x14x.h"
#define ADCMEM ((int*) 0x0140) // ADC12MEMx 定义
void Init(void); // 初始化系统及ADC寄存器
interrupt [ADC_VECTOR] void ADC12(void) ;
unsigned int Result;
void main(void) // 使用中断方式
{
Init();
ADC12CTL0 |= 0x01; // 开始转换
LPM0; // 进入低功耗状态,等待中断
_NOP(); //
}
void Init(void)
{
WDTCTL = WDTPW + WDTHOLD; // 停止Watchdog
/* ADC12 Settings: */
P6SEL = 0xFF; // 所有P6口线均为ADC模块使用
ADC12CTL0 &=~ 0x02; // 在进行设置时首先复位ADC的转换使能
ADC12CTL0 = SHT0_8+MSC+ADC12ON; // 内部振荡器,置位MSC位,因此转换能自动进行
ADC12CTL1 = 0x0204; // ADC12SC 位触发采样和保持
// 采样脉冲由采样定时器产生
// 时钟源:内部振荡器
// 时钟分频: 1
// 转换模式: 单通道、重复转换
// 选则参考电压和输入管脚
ADC12MCTL0 = 0x0a; // Ref = AVss, AVcc; Input =A10
// source = Temperature diode
ADC12IE = 0x001; // 使能通道10 转换完成后中断
_EINT();
ADC12CTL0 |= 0x02; // 使能ADC转换
}
interrupt [ADC_VECTOR] void ADC12(void) // ADC INTERRUPT HANDLER
{
Result = ADCMEM[0];
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -