MSP430學(xué)習筆記(4)ADC12
b)轉換控制寄存器ADC12CTL1
i.CSStartAdd轉換存儲地址位,可以定義單次轉換地址或序列轉換的首地址。
ii.SHS采樣輸入觸發(fā)源選擇:0為ADC12SC,1為T(mén)imer_A.OUT1,2為T(mén)imer_B.OUT0,3為T(mén)imer_B.OUT1。
iii.SHP采樣信號(SAMPCON)選擇控制位:0為信號源來(lái)自采樣觸發(fā)輸入信號,1為信號源來(lái)自采樣定時(shí)器,由采樣輸入信號的上升沿觸發(fā)采樣定時(shí)器。
iv.ISSH采樣輸入信號方向控制位:0為采樣輸入信號為同向輸入,1為反向。
v.ADC12DIV:ADC12時(shí)鐘源分頻因子選擇為。
vi.ADC12SSEL ADC12內核時(shí)鐘源選擇:0為ADC12內部時(shí)鐘源ADC12OSC(默認)為1為ACLK,為2為MCLK,為3為SMCLK。
vii.CONSEQ轉換模式選擇位:0為單通道單次轉換模式,1為序列通道單次轉換模式,2為序列通道多次轉換模式,3為序列通道多次轉換模式。
viii.ADC12BUSY ADC12忙標志位:0表示沒(méi)有活動(dòng),1表示忙。
c)ADC12MEM0~ADC12MEM15轉換存儲寄存器:16位寄存器,用來(lái)存放A/D轉換結果,只用其中低12位。
d)ADC12MCTLx轉換存儲器控制寄存器:
i.EOS:序列結束控制位:0為序列沒(méi)有結束,1為結束。
ii.Sref參考電壓源選擇位:
iii.INCH選擇模擬輸入通道:該4位表示的二進(jìn)制數為所選的模擬輸入通道:
e)ADC12IFG中斷標志寄存器:ADC12IFGx置位表示轉換結束,并且轉換結果已經(jīng)裝入轉換存儲寄存器;ADC12IFGx復位表示ADC12MEMx被訪(fǎng)問(wèn)。
f)ADC12IE中斷使能寄存器:1為允許響應的ADC12IFGx在置位時(shí)發(fā)生的中斷請求服務(wù),0為禁止ADC12IFGx在置位時(shí)發(fā)生的中斷請求服務(wù)。
g)ADC12IV中斷向量寄存器。
5.初始化代碼
- /*************************************************************************
- //名稱(chēng):ADC12Init
- //參數:ucharTimes-0為單次轉換,1為多次轉換,
- ucharTube-0為單通告轉換,1為多通道轉換
- ucharn-待轉換的通道(只有在Tube為0的時(shí)候有用)
- ucharV-0為內部參考電壓,1為外部參考電壓
- //返回值:無(wú)
- //功能:完成ADC12Init的初始化
- *************************************************************************/
- voidADC12Init(ucharTimes,ucharTube,ucharn,unsignedcharv)
- {
- if(Tube==0)//單通道轉換
- {
- if(v==0)
- {
- ADC12CTL0=ADC12ON+SHT0_8+MSC+REFON+REF2_5V;//使用內部電壓,打開(kāi)ADC12內核,8分頻,內部參考電壓2.5V
- ADC12MCTL0=SREF_0;//使用內部電壓,參考位為AVCC和AVSS
- }
- if(v==1)
- {
- ADC12CTL0=ADC12ON+SHT0_8;//使用外部電壓,打開(kāi)ADC12內核,8分頻
- ADC12MCTL0=SREF_2;//使用外部電壓,參考為為VeREF+和AVSS
- }
- if(Times==0)ADC12CTL1=SHP+CONSEQ_0;//單通道單次轉換,采樣信號來(lái)自采樣定時(shí)器
- if(Times==1)ADC12CTL1=SHP+CONSEQ_2;//單通道多次轉換,采樣信號來(lái)自采樣定時(shí)器
- 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;//使能待轉換通道的中斷
- ADC12CTL0|=ENC;//開(kāi)啟軟件使能
- }
- if(Tube==1)//多通道轉換
- {
- if(v==0)
- {
- ADC12CTL0=ADC12ON+SHT0_8+MSC+REFON+REF2_5V;//使用內部電壓,打開(kāi)ADC12內核,8分頻,內部參考電壓2.5V
- ADC12MCTL0=SREF_0;//使用內部電壓,參考位為AVCC和AVSS
- }
- if(v==1)
- {
- ADC12CTL0=ADC12ON+SHT0_8;//使用外部電壓,打開(kāi)ADC12內核,8分頻
- ADC12MCTL0=SREF_2;//使用外部電壓,參考為為VeREF+和AVSS
- }
- if(Times==0)ADC12CTL1=SHP+CONSEQ_1;//多通道單次轉換,采樣信號來(lái)自采樣定時(shí)器
- if(Times==1)ADC12CTL1=SHP+CONSEQ_3;//多通道多次轉換,采樣信號來(lái)自采樣定時(shí)器
- ADC12IE=0xff;//使能待轉換通道的中斷
- ADC12CTL0|=ENC;//開(kāi)啟軟件使能
- }
- }
評論