|
之前寫過,我也是找網(wǎng)上程序進(jìn)行修改的。我做的是基于msp430g2231的傳感器平臺(tái),運(yùn)用到了多路ad采集,當(dāng)然我是直接采集的,另外2種方式是中斷采集和dma采集,中斷采集以前做過,dma采集只在stm32中使用過,msp430沒有。
我用的msp430g2231,ad多路采集有很多種方法,我只說一種。
20150917165949_44558.jpg (1 MB, 下載次數(shù): 167)
下載附件
2016-3-30 19:13 上傳
20150917170017_62151.jpg (678.33 KB, 下載次數(shù): 159)
下載附件
2016-3-30 19:13 上傳
這個(gè)是之前發(fā)的圖片,msp430g2231 4路ad采樣,LED顯示。
其他的我不用說,我只寫主要的代碼。
這個(gè)事初始化函數(shù),初始化用的,當(dāng)然也可以用其他的方式初始化,初始化函數(shù)盡量在系統(tǒng)啟動(dòng)之后寫。
void init_ADC10()
{
P1SEL|=BIT3+BIT4+BIT5+BIT7;
ADC10AE0|=BIT3+BIT4+BIT5+BIT7; // 使P1.0允許AD模擬輸入信號(hào)
ADC10CTL0=ADC10ON+MSC+SREF_0;//+REFON 開AD內(nèi)核,選擇電源為參考電壓
ADC10CTL1=ADC10SSEL_0+CONSEQ_0; //+INCH_1+INCH_2 選擇ADC12SC為觸發(fā)源,選擇系統(tǒng)時(shí)鐘為AD內(nèi)核時(shí)鐘,采用單通道多次采用
}
然后就是采樣函數(shù),就這樣簡(jiǎn)單,當(dāng)然如果需要定時(shí)采樣,可以開啟ad定時(shí)器,也不是很難,仔細(xì)研究下就可以了。
單通道多次采樣幾乎是4個(gè)重復(fù)的步驟,如果采集的是實(shí)時(shí)的信號(hào),我是不建議這樣寫的,要么中斷,要么dma,干不干就看你了。具體的意思我就不過多解釋了。
void start_ADC10()
{
ADC10CTL1|=INCH_3;
ADC10CTL0|=ADC10SC+ENC;
while(ADC10CTL1&ADC10BUSY!=0);
result[0]= ADC10MEM;
//printf("%dn",result[1]);
ADC10CTL0&=~(ADC10SC+ENC);
ADC10CTL1&=~INCH_3;
ADC10CTL1|=INCH_4;
ADC10CTL0|=ADC10SC+ENC;
while(ADC10CTL1&ADC10BUSY!=0);
result[1]= ADC10MEM;
ADC10CTL0&=~(ADC10SC+ENC);
ADC10CTL1&=~INCH_4;
ADC10CTL1|=INCH_5;
ADC10CTL0|=ADC10SC+ENC;
while(ADC10CTL1&ADC10BUSY!=0);
result[2]= ADC10MEM;
ADC10CTL0&=~(ADC10SC+ENC);
ADC10CTL1&=~INCH_5;
ADC10CTL1|=INCH_7;
ADC10CTL0|=ADC10SC+ENC;
while(ADC10CTL1&ADC10BUSY!=0);
result[3]= ADC10MEM;
ADC10CTL0&=~(ADC10SC+ENC);
ADC10CTL1&=~INCH_7;
}
|
-
-
傳感器參數(shù)采樣.zip
2016-3-30 19:08 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
28.77 KB, 下載次數(shù): 84, 下載積分: 黑幣 -5
|