MSP430學習筆記(4)ADC12
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.初始化代碼
- /*************************************************************************
- //名稱:ADC12Init
- //參數(shù):ucharTimes-0為單次轉(zhuǎn)換,1為多次轉(zhuǎn)換,
- ucharTube-0為單通告轉(zhuǎn)換,1為多通道轉(zhuǎn)換
- ucharn-待轉(zhuǎn)換的通道(只有在Tube為0的時候有用)
- ucharV-0為內(nèi)部參考電壓,1為外部參考電壓
- //返回值:無
- //功能:完成ADC12Init的初始化
- *************************************************************************/
- voidADC12Init(ucharTimes,ucharTube,ucharn,unsignedcharv)
- {
- if(Tube==0)//單通道轉(zhuǎn)換
- {
- if(v==0)
- {
- ADC12CTL0=ADC12ON+SHT0_8+MSC+REFON+REF2_5V;//使用內(nèi)部電壓,打開ADC12內(nèi)核,8分頻,內(nèi)部參考電壓2.5V
- ADC12MCTL0=SREF_0;//使用內(nèi)部電壓,參考位為AVCC和AVSS
- }
- if(v==1)
- {
- ADC12CTL0=ADC12ON+SHT0_8;//使用外部電壓,打開ADC12內(nèi)核,8分頻
- ADC12MCTL0=SREF_2;//使用外部電壓,參考為為VeREF+和AVSS
- }
- if(Times==0)ADC12CTL1=SHP+CONSEQ_0;//單通道單次轉(zhuǎn)換,采樣信號來自采樣定時器
- if(Times==1)ADC12CTL1=SHP+CONSEQ_2;//單通道多次轉(zhuǎn)換,采樣信號來自采樣定時器
- switch(n)//選擇通道
- {
- case0:ADC12MCTL0|=INCH_0;break;
- case1:ADC12MCTL0|=INCH_1;break;
- case2:ADC12MCTL0|=INCH_2;break;
- case3:ADC12MCTL0|=INCH_3;break;
- case4:ADC12MCTL0|=INCH_4;break;
- case5:ADC12MCTL0|=INCH_5;break;
- case6:ADC12MCTL0|=INCH_6;break;
- case7:ADC12MCTL0|=INCH_7;break;
- }
- ADC12IE=n;//使能待轉(zhuǎn)換通道的中斷
- ADC12CTL0|=ENC;//開啟軟件使能
- }
- if(Tube==1)//多通道轉(zhuǎn)換
- {
- if(v==0)
- {
- ADC12CTL0=ADC12ON+SHT0_8+MSC+REFON+REF2_5V;//使用內(nèi)部電壓,打開ADC12內(nèi)核,8分頻,內(nèi)部參考電壓2.5V
- ADC12MCTL0=SREF_0;//使用內(nèi)部電壓,參考位為AVCC和AVSS
- }
- if(v==1)
- {
- ADC12CTL0=ADC12ON+SHT0_8;//使用外部電壓,打開ADC12內(nèi)核,8分頻
- ADC12MCTL0=SREF_2;//使用外部電壓,參考為為VeREF+和AVSS
- }
- if(Times==0)ADC12CTL1=SHP+CONSEQ_1;//多通道單次轉(zhuǎn)換,采樣信號來自采樣定時器
- if(Times==1)ADC12CTL1=SHP+CONSEQ_3;//多通道多次轉(zhuǎn)換,采樣信號來自采樣定時器
- ADC12IE=0xff;//使能待轉(zhuǎn)換通道的中斷
- ADC12CTL0|=ENC;//開啟軟件使能
- }
- }
評論