×
嵌入式 > 嵌入式开发 > 详情

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

发布时间:2020-08-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还有另外三种模式,原理都差不多,就是多寄存器中的各位操作,这里我没有用中断模式,另外的三中模式得用中断方式来获得数据


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
NXP推出Wi-Fi 6E三频段SOC 充分释放6GHz频谱潜力