说说关于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还有别的三种形式,原理都差不多,便是多寄存器中的各位操作,这儿我没有用中止形式,别的的三中形式得用中止方法来取得数据