📄 3_8_2_4.c
字号:
#include <msp430x13x.h>
#define ADCMEM ((int*) 0x0140) // ADC12MEMx 定义
void Init(void);
unsigned int Result[2];
void main(void) //使用中断方式取结果
{
Init();
ADC12CTL0 |= 0x01; // 开始转换
LPM0; //进入低功耗状态,等待中断
_NOP();
}
void Init(void)
{
WDTCTL = WDTPW + WDTHOLD;
P6SEL = 0xFF; // 所有P6口线均为ADC模块使用
ADC12CTL0 &=~ 0x02; // 在进行设置时首先复位ADC的转换使能
ADC12MCTL0 = 0x00; // Ref = AVss, AVcc; 输入通道 = A0
ADC12MCTL1 = 0x8a; // Ref = AVss, AVcc; 输入通道 = A10
ADC12CTL1 = 0x0206 ; // 第一个转换结果被放在ADC12MEM0
// 第二个转换结果被放在ADC12MEM1
// 采样脉冲由采样定时器产生
// 时钟源:内部振荡器
// 时钟分频: 1
// 转换模式: 多通道、重复转换
ADC12CTL0 = SHT0_8+ MSC+ADC12ON ;
ADC12IE = 0x002; //使能转换中断
ADC12CTL0 |= 0x02;
_EINT(); //使能全局中断
}
interrupt [ADC_VECTOR] void ADC12(void) // ADC 中断处理程序
{
unsigned int i;
for(i = 0 ; i < 2 ; i++ )
{
Result[i] = ADCMEM[i] ; //读取结果
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -