📄 3_8_2_2.c
字号:
#include "MSP430x14x.h"
#define ADCMEM ((int*) 0x0140) // ADC12MEMx 定义
//--------------------------------------------------------------------------
void Init(void); // Initialization of System/Control Registers
void main(void)
{
unsigned int i;
unsigned int j;
unsigned int Result[2]; //用以保存转换结果
Init(); //对ADC进行初始化
while (1)
{
for (i=0;i<2;i++)
{
ADC12CTL0 |= 0x01; // 开始转换
ADC12CTL0 &=~0x01;
for (j=0;j<=1000;j++); // 延时,准备触发序列中的下一次转换
}
while ((ADC12CTL1&0x01)==1); // 等待整个序列的转换完成
for(j = 0 ; j <2; j++)
{
Result[j] = ADCMEM[j];
}
for (i=0;i<=40000;i++); // 两个序列之间的一个延时
}
}
void Init(void)
{
WDTCTL = WDTPW + WDTHOLD; // 停止Watchdog
/* ADC12 Settings: */
P6SEL = 0xFF; // 所有P6口线均为ADC模块使用
ADC12CTL0 &=~ 0x02; // 在进行设置时首先复位ADC的转换使能
// 选则参考电压和输入管脚
ADC12MCTL0 = 0x00; // Ref = AVss, AVcc; Input = A0
ADC12MCTL1 = 0x8a; // Ref = AVss, AVcc; Input = A10
// ADC12MCTL1 是最后一个转换通道
ADC12CTL1 = 0x0202; // ADC12SC 位触发采样和保持
// 采样脉冲由采样定时器产生
// 时钟源:内部振荡器
// 时钟分频: 1
// 转换模式: 多通道、单次转换
ADC12CTL0 = 0x0010+SHT0_8;
ADC12CTL0 |= 0x02; // 使能ADC转换
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -