版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第四講ATD模塊的使用
一.ATDxCTL2ADPU-A/D電源使能/禁止
1=A/D模塊上電
0=禁止A/D,以減少功耗AWAI-A/D等待模式1=等待模式下,轉(zhuǎn)換0=等待模式下,禁止轉(zhuǎn)換AFFC-A/D快速轉(zhuǎn)換完成標(biāo)志位清零
1=快速標(biāo)志位清零順序
每次讀取結(jié)果寄存器自動清零
0=正常標(biāo)志位清零順序
需要手動對狀態(tài)標(biāo)志位清零ASCIE-A/D順序完成中斷使能ASCIF-A/D順序完成標(biāo)志位二.ATDxCTL3S8C:S1C決定轉(zhuǎn)換隊列長度;S8CS4CS2CS1C隊列長度00008000110010200113010040101501106011171XXX8注意:轉(zhuǎn)換序列長度就是需要轉(zhuǎn)換的通道數(shù)比如:通道0,1,2作為AD采集通道,則轉(zhuǎn)換序列為3,即S2C=1,S1C=1FIFO模式?jīng)Q定了結(jié)果存放與轉(zhuǎn)換順序的關(guān)系在控制寄存器5ATD0CTL5中:設(shè)CCCBCA=000,轉(zhuǎn)換序列從通道0開始;ATD0DR0,ATD0DR1,ATD0DR2存放轉(zhuǎn)換結(jié)果設(shè)CCCBCA=010,轉(zhuǎn)換序列從通道2開始。仍然是ATD0DR0,ATD0DR1,ATD0DR2存放轉(zhuǎn)換結(jié)果下面演示:非FIFO模式voidADC_Init(){ATD0CTL2=0x80;///ATD0常工作
ATD0CTL3=0x00;//隊列長度8;轉(zhuǎn)換結(jié)果與轉(zhuǎn)換順序相關(guān)//
ATD0CTL3=0x10;//隊列長度2;轉(zhuǎn)換結(jié)果與轉(zhuǎn)換順序相關(guān)
ATD0CTL4=0x81;//8位精度:4個轉(zhuǎn)換周期
//ATD0CTL5=0XB6;///從通道06開始;連續(xù)轉(zhuǎn)換;右對齊
ATD0CTL5=0XB7;///從通道07開始;連續(xù)轉(zhuǎn)換;右對齊}voidmain(void){/*putyourowncodehere*/intkk=0,i;display_Init();ECT_Init();ADC_Init();boMA_Init();DDRA=0XFF; EnableInterrupts;for(;;){for(i=1000;i>0;i--);while(!ATD0STAT0_SCF);////等待當(dāng)前轉(zhuǎn)換完成while(!ATD0STAT1_CCF0);switch(read_BOMA()){case1:Display(ATD0DR0);break;case2:Display(ATD0DR1);break;case3:Display(ATD0DR2);break;case4:Display(ATD0DR3);break;case5:Display(ATD0DR4);break;case6:Display(ATD0DR5);break;case7:Display(ATD0DR6);break;case8:Display(ATD0DR7);break;}ATD0STAT0_SCF=1;///清除轉(zhuǎn)換完成標(biāo)志
_FEED_COP();/*feedsthedog*/}/*loopforever*//*pleasemakesurethatyouneverleavemain*/}可見實驗現(xiàn)象為1.當(dāng)從06通道開始轉(zhuǎn)換時,06通道結(jié)果存在ATD0DR0中07通道結(jié)果存在ATD0DR1中;
2.當(dāng)從07通道開始轉(zhuǎn)換時,07通道結(jié)果存在ATD0DR0中06通道結(jié)果存在ATD0DR7中;注意此處設(shè)置是結(jié)果存放與轉(zhuǎn)換順序相關(guān);
轉(zhuǎn)換隊列為8時,從07開始轉(zhuǎn)換時,讀取ATD0DR1:ATD0DR6得到的是其他硬件產(chǎn)生的結(jié)果;
從06開始轉(zhuǎn)換時,讀取ATD0DR2:ATD0DR7得到的是其他硬件產(chǎn)生的結(jié)果;
*當(dāng)隊列長度不是8時,ATD轉(zhuǎn)換結(jié)果與順序的關(guān)系:
例如:隊列長度為3,從06通道開始轉(zhuǎn)換,則轉(zhuǎn)換順序和結(jié)果對應(yīng)為:(ATD0DR0—AN6)(ATD0DR1—AN7)(ATD0DR2—AN1)(ATD0DR0—AN6)(ATD0DR1—AN7)….隊列長度為3,從07通道開始轉(zhuǎn)換,則轉(zhuǎn)換順序和結(jié)果對應(yīng)為:(ATD0DR0—AN7)(ATD0DR1—AN1)(ATD0DR2—AN2)(ATD0DR0—AN7)(ATD0DR1—AN1)….在FIFO模式下若隊列長度為8;則結(jié)果與非FIFO模式下相同;
若隊列長度非8則結(jié)果如下:
例:隊長3,從06通道開始轉(zhuǎn)換則結(jié)果與順序為:(ATD0DR0—AN6)(ATD0DR1—AN7)(ATD0DR2—AN0)(ATD0DR3—AN6)(ATD0DR4—AN7)(ATD0DR5—AN0)(ATD0DR6—AN6)(ATD0DR7—AN7)(ATD0DR0—AN0)(ATD0DR1—AN6)注意:使用FIFO模式必須讀取ATDxSTAT0中CC1,CC2,CC3來確定被轉(zhuǎn)換通道對應(yīng)
下面演示:在FIFO模式隊長為2下各寄存器的值////////////--------ADC-------/////////////voidADC_Init(){////AD0/
ATD0CTL2=0x80;///ATD0常工作
//ATD0CTL3=0x10;//隊列長度2;轉(zhuǎn)換結(jié)果與轉(zhuǎn)換順序相關(guān)
ATD0CTL3=0x24;//隊列長度2;轉(zhuǎn)換結(jié)果與轉(zhuǎn)換順序無關(guān)
//ATD0CTL3=0x04;//隊列長度8;轉(zhuǎn)換結(jié)果與轉(zhuǎn)換順序相關(guān)//ATD0CTL3=0x00;//隊列長度8;轉(zhuǎn)換結(jié)果與轉(zhuǎn)換順序無關(guān)
ATD0CTL4=0x81;//8位精度:4個轉(zhuǎn)換周期
ATD0CTL5=0XB6;///從通道06開始;連續(xù)轉(zhuǎn)換;右對齊
//ATD0CTL5=0XB7;///從通道07開始;連續(xù)轉(zhuǎn)換;右對齊}voidmain(void){/*putyourowncodehere*/intkk=0,i;display_Init();ECT_Init();ADC_Init();boMA_Init();DDRA=0XFF; EnableInterrupts;for(;;){
for(i=1000;i>0;i--);while(!ATD0STAT0_SCF);////等待當(dāng)前轉(zhuǎn)換完成while(!ATD0STAT1_CCF0);switch(read_BOMA()){case1:Display(ATD0DR0);break;case2:Display(ATD0DR1);break;case3:Display(ATD0DR2);break;case4:Display(ATD0DR3);break;case5:Display(ATD0DR4);break;case6:Display(ATD0DR5);break;case7:Display(ATD0DR6);break;case8:Display(ATD0DR7);break;}//Display(read_BOMA());ATD0STAT0_SCF=1;///清除轉(zhuǎn)換完成標(biāo)志
_FEED_COP();/*feedsthedog*/}/*loopforever*//*pleasemakesurethatyouneverleavemain*/}思考:在FIFO模式下,隊列長度為一那些結(jié)果寄存器存儲了被選擇通道的正確結(jié)果?ATDxDR0:ATDxDR7在非FIFO模式下,隊列長度為1,那個寄存器寄存器存儲了被選擇通道正確的結(jié)果?ATDxDR0
ATDxCTL4SRES8:AD精度控制位1:8位精度結(jié)果從0~255
0:10位精度結(jié)果從0~1023
精度越高轉(zhuǎn)換速度越慢AD采樣周期SMP1SMP0第二階段采樣時間002個周期014個周期108個周期1116個周期AD采樣預(yù)分頻PRS4:PRS0[BusClock]ATDclock=X0.5[Prescaler]
其中[Prescaler]=2+PRS0*2+PRS1*4+PRS2*8+PRS3*16+PRS4*32ATDxCTL5ATD數(shù)據(jù)結(jié)構(gòu)DJM:結(jié)過對齊方式1:右對齊0:左對齊注意:對齊方式的不同在讀取結(jié)果寄存器時需注意
當(dāng)不分高低位讀時(即讀ATDxDRy):結(jié)果總是正確的
當(dāng)分高低位讀時(即讀ATDxDRyH和即讀ATDxDRyL):
結(jié)果需要根據(jù)不同的對齊方式來確認;結(jié)果的數(shù)據(jù)類型DSGN:0:無符號1:有符號數(shù)據(jù)有正負,此時不可使用右對齊;SCAN:隊列轉(zhuǎn)換模式0:只轉(zhuǎn)換一次1:連續(xù)轉(zhuǎn)換————隊列轉(zhuǎn)換完成后繼續(xù)從第一個采樣通道(由CC,CB,CA決定)MULT:多通道采集模式1:多通道采集模式0:單通道采集模式
當(dāng)多通道采集模式開啟,由CC,CB,CA,決定的第一個通道開始,采集由S8C,S4C,S2C決定的通道數(shù)量
例:第一通道為5,采集通道數(shù)為4,則采樣順序為AN5——AN6——AN7——AN1下一次仍按此順序
當(dāng)單通道采集時,采集由CC,CB,CA,決定的哪一位由CC,CB,CA,決定通道表ATD0:含通道0——7例:通道4:AN4ATD1:含通道8——15例:通道10:AN2CCCBCA通道000AN0001AN1010AN2011AN3100AN4101AN5110AN6111AN7ATD狀態(tài)寄存器0:ATDxSTAT0SCF:隊列轉(zhuǎn)換完成標(biāo)志CC2:CC0在非FIFO模式下:可以不用此三位在FIFO模式下:此三位標(biāo)志著當(dāng)前通道轉(zhuǎn)換結(jié)果的存儲位置,與ATDxSTAT1配合使用可以查出到底是那個通道的轉(zhuǎn)換值
下面舉例說明配合用法:設(shè)轉(zhuǎn)換通道數(shù)為3,從06通道開始轉(zhuǎn)換,在FIFO模式下:其轉(zhuǎn)換序列為AN06—AN07—AN01—AN06—AN07—AN01….當(dāng)前結(jié)果存放位置為ATDxDRn中,不知道到底是那個通道轉(zhuǎn)換完成;解法如下:計算上述n=CC0*1+CC1*2+CC2*4;在看CCF0:CCF7那一位為1;(注意此例最多CCF2=1)
如:n=2;CCF1=1;那么可以確定是AN07的結(jié)果存放在ATDxDR2中;
又如:n=6;CCF0=1;那么可以確定是AN06的結(jié)果存放在ATDxDR6中;下面給出部分代碼ATD的初始化
ATD0CTL2=0x80;///ATD0常工作
ATD0CTL3=0x14;//隊列長度2;轉(zhuǎn)換結(jié)果與轉(zhuǎn)換順序相關(guān)
//ATD0CTL3=0x14;//隊列長度2;轉(zhuǎn)換結(jié)果與轉(zhuǎn)換順序無關(guān)
//ATD0CTL3=0x04;//隊列長度8;轉(zhuǎn)換結(jié)果與轉(zhuǎn)換順序相關(guān)//ATD0CTL3=0x00;//隊列長度8;轉(zhuǎn)換結(jié)果與轉(zhuǎn)換順序無關(guān)
ATD0CTL4=0x81;//8位精度:4個轉(zhuǎn)換周期
ATD0CTL5=0XB6;///從通道06開始;連續(xù)轉(zhuǎn)換;右對齊
//ATD0CTL5=0XB7;///從通道07開始;連續(xù)轉(zhuǎn)換;右對齊//ATD0CTL5=0x87;//單次轉(zhuǎn)換;從通道07開始;右對齊當(dāng)隊列長度為一時,讀取數(shù)據(jù)ATD1CTL5=0xa6;while(!ATD1STAT0_SCF);////此處也可為while(!ATD0STAT1_CCF0);想一想為什么
a=ATD0DR0;//讀通道0的轉(zhuǎn)換結(jié)果ATD1STAT0_SCF=1;ATD0CTL5=0xA6;while(!ATD0STAT0_SCF==1);read_data[1]=ATD0DR0L;//電位器AD2旋鈕AN6ATD0STAT0_SCF=1;ATD0CTL5=0xA7;//光敏采樣輸入AN7while(!ATD0STAT0_SCF==1);read_data[2]=ATD0DR0L;A
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度企業(yè)員工借用設(shè)備使用期限合同3篇
- 2025年度定制家具行業(yè)競業(yè)禁止模板木方買賣合同3篇
- 2025年度農(nóng)村自建房合同協(xié)議書(含智能安防監(jiān)控)
- 養(yǎng)殖場土地租賃合同(二零二五年度)農(nóng)業(yè)科技創(chuàng)新3篇
- 二零二五年度個人施工安全責(zé)任協(xié)議書范本3篇
- 2025年度農(nóng)村自建房工程承包合同
- 2025年度全新官方版二零二五年度離婚協(xié)議書與房產(chǎn)分割執(zhí)行細則3篇
- 二零二五年度特色農(nóng)業(yè)農(nóng)田承包合作協(xié)議
- 2025年度出租車位充電樁安裝工程驗收及質(zhì)保合同
- 二零二五年度全新寫字樓轉(zhuǎn)租協(xié)議合同:商務(wù)樓租賃權(quán)轉(zhuǎn)讓專案2篇
- 中小學(xué)學(xué)校安全管理制度匯編
- DB21∕T 3240-2020 芹菜農(nóng)藥安全使用生產(chǎn)技術(shù)規(guī)程
- 2024年全國《考評員》專業(yè)技能鑒定考試題庫與答案
- 廣州滬教牛津版七年級英語上冊期中試卷(含答案)
- 2025版國家開放大學(xué)法律事務(wù)專科《民法學(xué)(1)》期末考試總題庫
- 幼兒心理健康的教育課件
- DB43T 1167-2016 高純(SiO ≥99.997%)石英砂 規(guī)范
- 《環(huán)境保護產(chǎn)品技術(shù)要求 工業(yè)廢氣吸附凈化裝置》HJT 386-2007
- 化工過程安全管理導(dǎo)則學(xué)習(xí)考試題及答案
- 重慶市2023-2024學(xué)年七年級上學(xué)期期末考試數(shù)學(xué)試題(含答案)
- 銀行下半年對公業(yè)務(wù)工作計劃(13篇)
評論
0/150
提交評論