<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MSP430之一 關(guān)于AD轉(zhuǎn)換

          MSP430之一 關(guān)于AD轉(zhuǎn)換

          作者: 時(shí)間:2016-11-28 來源:網(wǎng)絡(luò) 收藏

          在這里記下來自己所學(xué)的,而且寫一篇記憶更深刻,還方便查閱。希望能有幫助吧~加油一起進(jìn)步。

          本文引用地址:http://www.ex-cimer.com/article/201611/323029.htm

          l 首先應(yīng)明確Msp4301X里的各系列中的ADC模塊大凡是12位的轉(zhuǎn)換精度。下圖即為其功能模塊圖。


          其實(shí)這個(gè)圖感覺大概看哈就行了,真有時(shí)間和精力細(xì)細(xì)結(jié)合書滲透還是可以的,不過就是剛開始看有點(diǎn)花花綠綠吧。

          l 熟悉并能使用一個(gè)模塊,必然要熟悉其各個(gè)寄存器的作用。下面我們來看下ADC12模塊中各個(gè)模塊寄存器的作用,

          轉(zhuǎn)換控制寄存器 ADC12CTL0

          ADC12CTL0

          0

          1

          2

          3

          4

          5

          6

          7

          8-11

          12-15

          ADCSC

          ENC

          ADCIVIE

          ADC0VIE

          ADCON

          REFON

          2.5V

          MSC

          SHT0

          SHT1

          1. ENC=1時(shí)才能正常的AD轉(zhuǎn)換

          2. ADCSC是其采集/轉(zhuǎn)換控制位,啟動(dòng)AD必須要用一條指令來配置ENC和ADCSC。

          3. ADCIVIE 轉(zhuǎn)換時(shí)間溢出中斷。轉(zhuǎn)換未完成時(shí),繼續(xù)采樣則會(huì)溢出。

          4. ADC0VIE 溢出中斷允許位。即ADC12MEMx中數(shù)據(jù)未讀出,繼續(xù)寫入、

          5. ADC12ON 打開內(nèi)核、

          6. REFON 內(nèi)部基準(zhǔn)電壓開啟否?

          7. MSC 多次采樣/轉(zhuǎn)換 ,有效條件為SHP=1, MSC=0時(shí)上升沿,當(dāng)CONSQ!=0,MSC=1,首次上升沿,后采樣接上次。

          8. SHT1,SHT0,名為采樣保持定時(shí)器,SHT0_x,其中X代表的是采樣分頻因子,采樣周期是 ADC12CLK周期的4倍。2的級(jí)數(shù)倍。

          轉(zhuǎn)換控制寄存器 ADC12CTL1

          0

          1.,2

          3,4

          5-7

          8

          9

          10-,11

          12-15

          BUSY

          CONSEQ

          ADCSEL

          ADCDIV

          ISSH

          SHP

          SHS

          CSSTARTADD

          1. BUSY 判斷位,只用于單通道單次轉(zhuǎn)的,需要ENC=0,不然沒用。

          2. CONSEQ 0 1 2 3 單通道單次,序列單次,單多次,序列多次。

          3. ADC12SEL 時(shí)鐘源選擇,0 1 2 3 分別為ADC12OSC,ACLK ,MCLK,SMC

          4. ADC12DIV 分頻因子選擇位,挺少用,

          5. ISSH 一般推薦的是同相,即為ISSH 0

          6. SHP 采樣信號(hào)來源 0 來自輸入,1為采樣定時(shí)器

          7. SHS 采樣觸發(fā)輸入源,0 12 3 ADC12SC,Timer_A.OUT1,TM_B 0 ,TM_B1

          8. CSSTARTADD 4位分別對(duì)應(yīng) 存儲(chǔ)的ADC12MEM-1-15,定義地址用。

          最重要的兩個(gè)部分說完了,呼呼喘口氣、呵呵 看得累了還得用心記下來。

          接下來要說的是轉(zhuǎn)換儲(chǔ)存寄存器 ADC12MEM0-MEM15;

          只用低12位,后面4個(gè)讀零。

          其次當(dāng)然是轉(zhuǎn)換寄存器控制寄存器ADC12MCTLx

          這個(gè)也是定義轉(zhuǎn)換功能滴~~

          0 1 2 3

          4 5 6

          7

          INCH

          SREF

          EOS

          4個(gè)模擬通道

          可選6種。

          結(jié)束控制.0.完了,1沒有

          SREF 參考電壓那里,就查查書吧、就是定義以哪個(gè)為基準(zhǔn)的。

          ********************************我是分割線***********************************************

          說到這里基本可以用上述3個(gè)來搭建出基本的AD模型了吧。感覺硬件編程,就像是堆積木哈,找到積木,然后一個(gè)一個(gè)一堆,技術(shù)含量就是記不住,每次都要翻書。不過沒關(guān)系呀,不翻書,然何以破萬(wàn)卷?接著加油吧!

          ****************************************************************************************

          中斷寄存器:

          ADC12IFG 中斷標(biāo)志寄存器,ADC12IFG..x = 1 結(jié)束轉(zhuǎn)換,= 0 訪問ADC12MEM

          ADC12IE 中斷使能 =1時(shí)請(qǐng)求中斷允許,= 0禁止中斷

          ADC12IV 僅有的一個(gè)中斷向量,實(shí)際是定義了中斷地址.

          ***********************************分割**************************************

          到這里基本介紹完了,其實(shí)也是看了這么久程序的一個(gè)總結(jié)吧,當(dāng)然不明白的地方我依舊還是去查了書,怕自己出現(xiàn)錯(cuò)誤。下面將提供個(gè)例程:我只摘了工作需要的其中部分。

          *************************************華麗的分割*************************************

          #include <msp430 14x.h>

          Void main(void)

          unsigned int adnum,ad_max,ad_min,ad_val,result[MAX_AD_NUM];

          unsigned char k;

          {

          WDTCTL=WDTPW+WDTHOLD;

          P6SEL&=~ BIT1;

          DC12CTL0 = ADC12ON + SHT0_8 + MSC;//內(nèi)部振蕩器 +保持采樣系數(shù)+自動(dòng)轉(zhuǎn)換

          ADC12MCTL0 = INCH_0;//存儲(chǔ)寄存器初始化

          ADC12CTL1 = SHP + CONSEQ_2; //單通道多次轉(zhuǎn)換模式

          ADC12MCTL0 |= SREF_7;//參考電源選擇VR+=VREF+;VR-=AVSS

          ADC12IE=0x01;//使用通道 使用結(jié)束后中斷

          ADC12CTL0 |= ENC ;//轉(zhuǎn)換允許位 ENC初始化 使能轉(zhuǎn)換

          ADC12CTL0 |= ADC12SC ;//位觸發(fā)及采樣保持

          for(k=0;k<50;k++); //延遲

          adnum=0;

          ad_max=0;

          ad_min=4095;/

          for(k=0;k<12;k++);采樣12次

          }

          {

          while((ADC12IFG&BIT0)!=BIT0) ; //處理ADC12 IN.0中斷

          result[k]=ADC12MEM0;//果返回至內(nèi)部存儲(chǔ)器

          if(result[k]>ad_max)ad_max=result[k];

          if(result[k]

          adnum+=result[k];

          }

          adnum-=(ad_max+ad_min); // ADC12CTL1 &= ~ADC12IFG;

          ADC12CTL0 &= ~ENC ; //ENC設(shè)置為零修改ADX12寄存器值

          ADC12CTL0=0;

          ADC12MCTL0=0;

          ADC12CTL1=0;

          ad_val=(int)(adnum/10);//取采樣平均值。

          return ad_val;

          }

          ******************************************************************



          關(guān)鍵詞: MSP430AD轉(zhuǎn)

          評(píng)論


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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();