新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > msp430的一些常用的C語(yǔ)言控制程序---ADC12(1)

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

作者: 時(shí)間:2016-11-11 來源:網(wǎng)絡(luò) 收藏
說說關(guān)于AD的程序吧:就寫一下最簡(jiǎn)單的單通道單次采集吧:

//查詢方式獲取AD值
#include <msp430x14x.h>//我們的系統(tǒng)板子是msp430f149,所以得用這個(gè)頭文件~
void ADC_Init(void);
unsigned ADC_Result;
void main(void){
WDTCTL = WDTPW + WDTHOLD;
ADC_Init();
while(1){
ADC12CTL0 |= ADC12SC;//ADC12SC 是當(dāng)SAMPCON 由采樣定時(shí)器產(chǎn)生,ADC12SC由0改為1啟動(dòng)轉(zhuǎn)換
while(ADC12CTL1 & BIT0 == 1);//當(dāng)ADC12BUSY == 1時(shí)等待
ADC_Result = ADC12MEM0;//這塊可單步運(yùn)行時(shí)在IAR中觀察到,或者有LED,可能對(duì)它處理一下顯示~
}
}
//
void ADC_Init(void) //初始化時(shí)鐘
{
P6DIR &= ~BIT6;//設(shè)置p6.6為輸入,這個(gè)口和板子上的接口有關(guān).對(duì)了,149內(nèi)置的是12位AD,精度足夠一般用了
P6SEL |= BIT6; //選擇P6.6的第二功能口
ADC12CTL0 = ADC12ON + REFON + SHT0_6 ;//AD電源打開、參考電壓打開、采樣時(shí)間分頻設(shè)置,一般6或8
ADC12CTL0 &= ~REF2_5V; //選擇1.5V參考電壓,這個(gè)因?yàn)椴杉降碾妷褐底兓嘘P(guān)
ADC12CTL1 |= SHP + CONSEQ_0+ SHS_0; //使用采樣時(shí)鐘,單通道單次采樣
ADC12MCTL0 = SREF_1 + INCH_6; //選擇AD參考電壓和輸入通道
ADC12CTL0 |= ENC; //ADC轉(zhuǎn)化使能,此處一定得放在后面,要不結(jié)果容易出錯(cuò)
}

這就是最簡(jiǎn)單的AD采集了,430還有另外三種模式,原理都差不多,就是多寄存器中的各位操作,這里我沒有用中斷模式,另外的三中模式得用中斷方式來獲得數(shù)據(jù)


關(guān)鍵詞: msp430C語(yǔ)言控制ADC1

評(píng)論


技術(shù)專區(qū)

關(guān)閉