新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > MSP430學習筆記(4)ADC12

MSP430學習筆記(4)ADC12

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

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

i.CSStartAdd轉(zhuǎn)換存儲地址位,可以定義單次轉(zhuǎn)換地址或序列轉(zhuǎn)換的首地址。

ii.SHS采樣輸入觸發(fā)源選擇:0為ADC12SC,1為Timer_A.OUT1,2為Timer_B.OUT0,3為Timer_B.OUT1。

iii.SHP采樣信號(SAMPCON)選擇控制位:0為信號源來自采樣觸發(fā)輸入信號,1為信號源來自采樣定時器,由采樣輸入信號的上升沿觸發(fā)采樣定時器。

iv.ISSH采樣輸入信號方向控制位:0為采樣輸入信號為同向輸入,1為反向。

v.ADC12DIV:ADC12時鐘源分頻因子選擇為。

vi.ADC12SSEL ADC12內(nèi)核時鐘源選擇:0為ADC12內(nèi)部時鐘源ADC12OSC(默認)為1為ACLK,為2為MCLK,為3為SMCLK。

vii.CONSEQ轉(zhuǎn)換模式選擇位:0為單通道單次轉(zhuǎn)換模式,1為序列通道單次轉(zhuǎn)換模式,2為序列通道多次轉(zhuǎn)換模式,3為序列通道多次轉(zhuǎn)換模式。

viii.ADC12BUSY ADC12忙標志位:0表示沒有活動,1表示忙。

c)ADC12MEM0~ADC12MEM15轉(zhuǎn)換存儲寄存器:16位寄存器,用來存放A/D轉(zhuǎn)換結(jié)果,只用其中低12位。

d)ADC12MCTLx轉(zhuǎn)換存儲器控制寄存器:

i.EOS:序列結(jié)束控制位:0為序列沒有結(jié)束,1為結(jié)束。

ii.Sref參考電壓源選擇位:

iii.INCH選擇模擬輸入通道:該4位表示的二進制數(shù)為所選的模擬輸入通道:

e)ADC12IFG中斷標志寄存器:ADC12IFGx置位表示轉(zhuǎn)換結(jié)束,并且轉(zhuǎn)換結(jié)果已經(jīng)裝入轉(zhuǎn)換存儲寄存器;ADC12IFGx復(fù)位表示ADC12MEMx被訪問。

f)ADC12IE中斷使能寄存器:1為允許響應(yīng)的ADC12IFGx在置位時發(fā)生的中斷請求服務(wù),0為禁止ADC12IFGx在置位時發(fā)生的中斷請求服務(wù)。

g)ADC12IV中斷向量寄存器。

5.初始化代碼

[cpp]view plaincopyprint?
  1. /*************************************************************************
  2. //名稱:ADC12Init
  3. //參數(shù):ucharTimes-0為單次轉(zhuǎn)換,1為多次轉(zhuǎn)換,
  4. ucharTube-0為單通告轉(zhuǎn)換,1為多通道轉(zhuǎn)換
  5. ucharn-待轉(zhuǎn)換的通道(只有在Tube為0的時候有用)
  6. ucharV-0為內(nèi)部參考電壓,1為外部參考電壓
  7. //返回值:無
  8. //功能:完成ADC12Init的初始化
  9. *************************************************************************/
  10. voidADC12Init(ucharTimes,ucharTube,ucharn,unsignedcharv)
  11. {
  12. if(Tube==0)//單通道轉(zhuǎn)換
  13. {
  14. if(v==0)
  15. {
  16. ADC12CTL0=ADC12ON+SHT0_8+MSC+REFON+REF2_5V;//使用內(nèi)部電壓,打開ADC12內(nèi)核,8分頻,內(nèi)部參考電壓2.5V
  17. ADC12MCTL0=SREF_0;//使用內(nèi)部電壓,參考位為AVCC和AVSS
  18. }
  19. if(v==1)
  20. {
  21. ADC12CTL0=ADC12ON+SHT0_8;//使用外部電壓,打開ADC12內(nèi)核,8分頻
  22. ADC12MCTL0=SREF_2;//使用外部電壓,參考為為VeREF+和AVSS
  23. }
  24. if(Times==0)ADC12CTL1=SHP+CONSEQ_0;//單通道單次轉(zhuǎn)換,采樣信號來自采樣定時器
  25. if(Times==1)ADC12CTL1=SHP+CONSEQ_2;//單通道多次轉(zhuǎn)換,采樣信號來自采樣定時器
  26. switch(n)//選擇通道
  27. {
  28. case0:ADC12MCTL0|=INCH_0;break;
  29. case1:ADC12MCTL0|=INCH_1;break;
  30. case2:ADC12MCTL0|=INCH_2;break;
  31. case3:ADC12MCTL0|=INCH_3;break;
  32. case4:ADC12MCTL0|=INCH_4;break;
  33. case5:ADC12MCTL0|=INCH_5;break;
  34. case6:ADC12MCTL0|=INCH_6;break;
  35. case7:ADC12MCTL0|=INCH_7;break;
  36. }
  37. ADC12IE=n;//使能待轉(zhuǎn)換通道的中斷
  38. ADC12CTL0|=ENC;//開啟軟件使能
  39. }
  40. if(Tube==1)//多通道轉(zhuǎn)換
  41. {
  42. if(v==0)
  43. {
  44. ADC12CTL0=ADC12ON+SHT0_8+MSC+REFON+REF2_5V;//使用內(nèi)部電壓,打開ADC12內(nèi)核,8分頻,內(nèi)部參考電壓2.5V
  45. ADC12MCTL0=SREF_0;//使用內(nèi)部電壓,參考位為AVCC和AVSS
  46. }
  47. if(v==1)
  48. {
  49. ADC12CTL0=ADC12ON+SHT0_8;//使用外部電壓,打開ADC12內(nèi)核,8分頻
  50. ADC12MCTL0=SREF_2;//使用外部電壓,參考為為VeREF+和AVSS
  51. }
  52. if(Times==0)ADC12CTL1=SHP+CONSEQ_1;//多通道單次轉(zhuǎn)換,采樣信號來自采樣定時器
  53. if(Times==1)ADC12CTL1=SHP+CONSEQ_3;//多通道多次轉(zhuǎn)換,采樣信號來自采樣定時器
  54. ADC12IE=0xff;//使能待轉(zhuǎn)換通道的中斷
  55. ADC12CTL0|=ENC;//開啟軟件使能
  56. }
  57. }


上一頁 1 2 下一頁

關(guān)鍵詞: MSP430學習筆記ADC1

評論


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

關(guān)閉