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还有另外三种模式,原理都差不多,就是多寄存器中的各位操作,这里我没有用中断模式,另外的三中模式得用中断方式来获得数据
//查询方式获取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还有另外三种模式,原理都差不多,就是多寄存器中的各位操作,这里我没有用中断模式,另外的三中模式得用中断方式来获得数据
msp430C语言控制ADC1 相关文章:
- msp430的一些常用的C语言控制程序---ADC12(2)(11-11)
- msp430的一些常用的C语言控制程序---ADC12(3)(11-11)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)