msp430的一些常用的C語言控制程序---ADC12(1)
//查詢方式獲取AD值
#include <msp430x14x.h>//我們的系統(tǒng)板子是msp430f149,所以得用這個頭文件~
void ADC_Init(void);
unsigned ADC_Result;
void main(void){
WDTCTL = WDTPW + WDTHOLD;
ADC_Init();
while(1){
ADC12CTL0 |= ADC12SC;//ADC12SC 是當SAMPCON 由采樣定時器產(chǎn)生,ADC12SC由0改為1啟動轉(zhuǎn)換
while(ADC12CTL1 & BIT0 == 1);//當ADC12BUSY == 1時等待
ADC_Result = ADC12MEM0;//這塊可單步運行時在IAR中觀察到,或者有LED,可能對它處理一下顯示~
}
}
//
void ADC_Init(void) //初始化時鐘
{
P6DIR &= ~BIT6;//設置p6.6為輸入,這個口和板子上的接口有關.對了,149內(nèi)置的是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轉(zhuǎn)化使能,此處一定得放在后面,要不結(jié)果容易出錯
}
這就是最簡單的AD采集了,430還有另外三種模式,原理都差不多,就是多寄存器中的各位操作,這里我沒有用中斷模式,另外的三中模式得用中斷方式來獲得數(shù)據(jù)
評論