微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > msp430的一些常用的C语言控制程序---ADC12(1)

msp430的一些常用的C语言控制程序---ADC12(1)

时间:11-11 来源:互联网 点击:
说说关于AD的程序吧:就写一下最简单的单通道单次采集吧:

//查询方式获取AD值
#include msp430x14x.h>//我们的系统板子是msp430f149,所以得用这个头文件~
void ADC_Init(void);
unsigned ADC_Result;
void main(void){
WDTCTL = WDTPW + WDTHOLD;
ADC_Init();
while(1){
ADC12CTL0 |= ADC12SC;//ADC12SC 是当SAMPCON 由采样定时器产生,ADC12SC由0改为1启动转换
while(ADC12CTL1 & BIT0 == 1);//当ADC12BUSY == 1时等待
ADC_Result = ADC12MEM0;//这块可单步运行时在IAR中观察到,或者有LED,可能对它处理一下显示~
}
}
//
void ADC_Init(void) //初始化时钟
{
P6DIR &= ~BIT6;//设置p6.6为输入,这个口和板子上的接口有关.对了,149内置的是12位AD,精度足够一般用了
P6SEL |= BIT6; //选择P6.6的第二功能口
ADC12CTL0 = ADC12ON + REFON + SHT0_6 ;//AD电源打开、参考电压打开、采样时间分频设置,一般6或8
ADC12CTL0 &= ~REF2_5V; //选择1.5V参考电压,这个因为采集到的电压值变化有关
ADC12CTL1 |= SHP + CONSEQ_0+ SHS_0; //使用采样时钟,单通道单次采样
ADC12MCTL0 = SREF_1 + INCH_6; //选择AD参考电压和输入通道
ADC12CTL0 |= ENC; //ADC转化使能,此处一定得放在后面,要不结果容易出错
}

这就是最简单的AD采集了,430还有另外三种模式,原理都差不多,就是多寄存器中的各位操作,这里我没有用中断模式,另外的三中模式得用中断方式来获得数据

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top