6DSP原理與應用教案ADC_第1頁
6DSP原理與應用教案ADC_第2頁
6DSP原理與應用教案ADC_第3頁
6DSP原理與應用教案ADC_第4頁
6DSP原理與應用教案ADC_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

《DSP原理與應用》教案〔6〕教學課時:4學時六、A/D轉(zhuǎn)換模塊A/D轉(zhuǎn)換模塊概述F2407A/D轉(zhuǎn)換模塊〔ADC〕具有以下特性:〔S/H〕10ADC。16個的模擬輸入通道〔ADCIN0~ADCIN1。、自動排序的力量。一次可執(zhí)行最多16個通道的“自動轉(zhuǎn)換道都可以通過編程來選擇?!睸EQ1SEQ2〕可以獨立16個模擬轉(zhuǎn)換通道的排序器模式。5、在給定的排序方式下,4個排序掌握器〔CHSELSEQn〕打算了模擬通道轉(zhuǎn)換的挨次。A/D轉(zhuǎn)換:軟件:軟件馬上啟動〔SOCSEQn;E〔EAA/D轉(zhuǎn)換;EV〔EVBA/D轉(zhuǎn)換外部:ADCSOC引腳。8、敏捷的中斷掌握,允許在每一個或每隔一個序列的完畢時產(chǎn)生中斷懇求。9、排序器可工作在啟動/停頓模式,允很多個按時間排序的觸發(fā)源同步轉(zhuǎn)換。圖6-1 F2407xAADC模塊方框圖、圖6-1 F2407xAADC模塊方框圖11、采樣和保持獵取時間窗口有單獨的預定標掌握。12、內(nèi)置校驗模式。13、內(nèi)置自測試模式。自動排序器的工作原理ADC的排序器包括兩個獨立的最多可選擇8個模擬轉(zhuǎn)換通道的排序器〔SEQ1和16〔SEQ。6-2ADC模塊工作在最多可選擇16〔SEQ〕模式下6-3ADC模塊工作在兩個最多可選擇8〔SEQ1SEQ2〕模式下的構(gòu)造框圖。6-2級聯(lián)工作方式下自動排序ADC的構(gòu)造框圖在這兩種工作方式下,ADC模塊都能夠進展序列轉(zhuǎn)換并自動排序??赏ㄟ^模擬輸入通道的多路選擇器來選擇要轉(zhuǎn)換的通道。轉(zhuǎn)換完畢后,轉(zhuǎn)換后的數(shù)值結(jié)果保存在該通道相應的結(jié)果存放器〔RESULTn〕0RESULT0中,第1RESULT1A/DA/DSEQ2的操信號后,A/DSEQ2的操作之后馬上開頭響應SEQ1的懇求。8166-1列出了它們之間的比照狀況。圖圖6-3 雙排序工作方式下自動排序ADC的構(gòu)造框圖表6-1 雙排序器和單排序器工作比較為了描述便利,以后描述排序器時作如下規(guī)定:1〔SEQ1〕CONV00~CONV07;2〔SEQ2〕CONV08~CONV15;〔SEQ〕CONV00~CONV15。連續(xù)的自動排序模式8個通道的自動轉(zhuǎn)換排序器SEQ1SEQSEQ1/SEQ2在一次排序過程中,對多達8個的任意通道進展排序轉(zhuǎn)換,每次轉(zhuǎn)換結(jié)果被RESULT8~RESULT15。MAXCONVn〔MAXCONV3位段域或4位段域〕掌握,該值在自動排序的轉(zhuǎn)換開頭時,被裝載到自動排序狀態(tài)存放器〔AUTO_SEQ_S〔SEQCNTR3~0MAXCONVn開頭有挨次地轉(zhuǎn)換時,SEQCNTRn段域的值從裝載值開頭向下計數(shù)直到SEQCNTRn為0。一次自動排序完成的轉(zhuǎn)換數(shù)為MAXCONVn+1。例6-1SEQ1A/D轉(zhuǎn)換?!?、3、2、3、6、712需要排序自動轉(zhuǎn)換MAXCONV16CHESELQn6-2所列的值。6-26-1CHESELQn存放器填入值連續(xù)的自動排序方式A/D轉(zhuǎn)換流程圖如圖6-4所示。SEQCNTR0CONTRUN1〔即SEQCNTRnMAXCONV1的值,并且SEQ1CONV0ADC模ADC模塊的仲裁規(guī)律保證在發(fā)生這種沖突時不會崩潰。6-1CONV06SEQCNTRn0。SEQCNTRn0時,中斷標志位都被置為1,所以假設需要,用戶可ADCTRL2RSTSEQn位將排序器手動復位。復位CONV00,此特點在啟動/停頓操作發(fā)生中格外有用。上述例子也適用于SEQ2和SEQ。排序器的啟動/停頓模式除了連續(xù)的自動排序模式外,任何一個排序器〔SEQ1、SEQ2SEQ〕都可工作在啟動/6-1一樣,可實現(xiàn)在時間上單獨與多個啟動信號觸發(fā)源同步即排序器初始指針不需要指到CONV00就可以被重觸發(fā)。因此一個轉(zhuǎn)換序列之后,排序器指針指到當前的通道。在這種方式下,CONTRUN位必需被設置為0。圖圖6-4 連續(xù)的自動排序方式A/D轉(zhuǎn)換流程圖6-2排序器工作在啟動/停頓方式。要求:觸發(fā)源1個自動轉(zhuǎn)換〔I1、I2I2〔定時器周期〕3個V12在時間上是分開的,即間隔25us,如圖6-5所示。只有SEQ1被用到。圖6-5 大事治理器A〔EVA圖6-5 大事治理器A〔EVA〕啟動排序器EVA,外部引腳或軟件的SOC信號。例6-2中需要的兩個觸發(fā)源可以用同一個觸發(fā)源發(fā)生兩次來滿足。6-3所列的值。6-36-2ADC模塊的輸入通道選擇排序掌握存放器填入值一旦復位和初始化之后,SEQ1就開頭等待觸發(fā)源的到來。第一個觸發(fā)源來到之后,CONV00〔I、CONV01〔I〕CONV0〔I〕3個轉(zhuǎn)換被執(zhí)行。轉(zhuǎn)換完成之后,SEQ1等待另一個觸發(fā)源的到來。25us之后另一個觸發(fā)源來到,ADC模塊3CONV0〔VCONV0〔V2〕CONV0〔V〕CONV1SEQCNTR1中。假設其次個觸發(fā)源要求轉(zhuǎn)換的個數(shù)與第一個不一樣,那么用戶必需在其次個觸發(fā)源來到之前,MAXCONV1ADC模塊將重使用原來的MAXCONV1中的值。用戶可以在第一個觸發(fā)源引起的轉(zhuǎn)換完成之后的中斷效勞程序中轉(zhuǎn)變MAXCONV1的值,為其次個觸發(fā)源引起的轉(zhuǎn)換個數(shù)作預備。在其次個轉(zhuǎn)換序列完成之后,ADC模塊的結(jié)果存放器中得到如表6-4所列的值。SEQ1CONV00,并重復同樣的12轉(zhuǎn)換操作。6-46-2ADC模塊的結(jié)果存放器所得值輸入觸發(fā)源6-5。6-5排序器有效輸入觸發(fā)源注:1、排序器處于空閑狀態(tài)是指:在接收到一個觸發(fā)源之前,排序器指針指到CONV00或者排序器已經(jīng)完成一個轉(zhuǎn)換序列〔即SEQCNTR0在空閑狀態(tài),一個啟動信號觸發(fā)就可啟動一個自動轉(zhuǎn)換序列。2、假設一個的啟動觸發(fā)信號來到時,當前轉(zhuǎn)換序列正在進展,則將ADCTRL2存放SOCSEQn〔0SOC1,則該啟動觸發(fā)信號將喪失。停頓信號再連續(xù)操作,或者對排序器進展復位。復位使排序器馬上返回到空閑的起始狀態(tài)〔SEQ1CONV0,SEQ2CONV0。SEQ2SEQ1的觸發(fā)源SEQ1168個轉(zhuǎn)換通道。在排序轉(zhuǎn)換時的中斷操作ADCTRL2存放器中的中斷模式掌握位打算。12的用6-6所示。1:第一個序列和其次個序列中采樣的個數(shù)不一樣在這種狀況下使用中斷方式1〔即在每次EOS到來時,產(chǎn)生中斷懇求。CONVn=1I1I2。在中斷效勞子程序b中完成以下操作:CONVn1I1I2;結(jié)果存放器中讀出;排序器被復位。重復第〔2〕步和第〔3〕步。留意:中斷標志位在每次SEQCNTR到0時都被置1,且產(chǎn)生兩次中斷。2:兩個序列的采樣個數(shù)相等在這種狀況下使用中斷方式2〔即在每次EOS到來時,產(chǎn)生中斷懇求。MAXCONVn=2I、I2I〔V、V2V3。bd完成以下操作:ADC結(jié)果存放器中讀出;排序器被復位。重復第〔2〕步。留意:SEQCNTR01ADCI1、I2和1V1、V2V3之后才產(chǎn)生中斷。狀況3:兩個序列的采樣個數(shù)不相等〔帶虛讀〕MAXCONVn=2I1、I2x。bd完成以下操作:ADC結(jié)果存放器中讀出;排序器被復位。重復第〔2〕步。留意:第3個x采樣為一個假采樣,并未要求采樣。然而,為了使中斷效勞程序的CPU2的中斷懇求特性。圖圖6-6 在排序轉(zhuǎn)換時的中斷操作圖ADC時鐘預定標的采樣/保持模塊,來適應輸入信號阻抗的變化??蛇x用ACQPS3~ACQPS0CPSA/D轉(zhuǎn)換可被分6-7。01CPS0PS都會被放大〔即增加采樣/保持窗口的時間。PS6-8ACQPS3~ACQPS0位段域的描2S/H窗口再加上被預定標器拉長的倍數(shù)才是最終的PS。圖6-8說明白各個預定標位的作用。留意:在CPS為0時,PS和A 將和CPU時鐘相等。CLK圖6-7 A/D圖6-7 A/D轉(zhuǎn)換時間圖6-7 F240xAADC模塊的時鐘預定標校準模式BRGENA位〔橋使能〕和HI/LO位VREFHI/VREFLO。這兩換。校準模式可計算ADC模塊的零點、中點和最大值時的偏移誤差。該偏移誤差值的二負的狀況。在此根底上,ADC硬件自動地將偏移誤差量加到轉(zhuǎn)換值上。校準存放器〔CALIBRATION〕---地址70B8h結(jié)果的輸出。以下舉一個校準實例。取CALIBRATION存放器的值,以推斷該值對抱負值的偏移量有多大,然后在離開這種CALIBRATION存放器中。在后來的轉(zhuǎn)換值被送到結(jié)果存放器之前,此值將被加到轉(zhuǎn)換值上(不是在校服模式)。應當馬上啟動其次個校準操作〔這將掩蓋第一次枝準操作的結(jié)果。3FFhCALIBRATION存放器讀出的校淮轉(zhuǎn)換結(jié)果為3PDh,那么用戶應當在離開校準模式之前,將值0002h寫CALIBRATION2個數(shù)的調(diào)整。2VREFLO0000h0003h0003h寫到CALIBRATION3個數(shù)的調(diào)整。量結(jié)果進展平均,而另一些用戶則只關(guān)心某一點,如中點。這依據(jù)用戶需要而定。自測試模式ADC引腳的短路/開路。在這種狀況下,采樣周期為正常模式的兩倍。在采樣周期的前半局部,除了用戶供給的模擬輸入信號外,VREFHI或者VRKFLOADC轉(zhuǎn)換器的輸入;在采樣周期的后半局部,只有用戶供給的信號被ADC轉(zhuǎn)換器的輸入。假設使用VREFHI作自測試,且ADC引腳為開路,則結(jié)果存放VREFHI的數(shù)字值。和自測試模式不能同時使用。ADC模塊的存放器ADC6-6所示。70ABh70AChRESULT3RESULT4370ABh70AChRESULT3RESULT43470B8hCALIBRATION正轉(zhuǎn)換結(jié)果地址存放器名稱地址存放器名稱70A0hADCTRL1ADC170ADhRESULT5570A1hADCTRL2ADC270AEhRESULT6670A2hMAXCONV最大轉(zhuǎn)換通道存放器70AFhRESULT7770A3hCHSELSEQ1通道選擇排序掌握存放器170B0hRESULT8870A4hCHSELSEQ2通道選擇排序掌握存放器270B1hRESULT9970A5hCHSELSEQ3通道選擇排序掌握存放器370B2hRESULT101070A6hCHSELSEQ4通道選擇排序掌握存放器470B3hRESULT111170A7hAUTO_SEQ_SR自動排序狀態(tài)存放器70B4hRESULT121270A8hRESULT0070B5hRESULT131370A9hRESULT1170B6hRESULT141470AAhRESULT2270B7hRESULT15151〔ADCTRL1〕--70A0h15:保存位。14:復位位。ADCADC模塊的主動復位。狀態(tài)。0 無影響; 1 復位整個ADC模塊。1來實現(xiàn),在任何ADCTRL1存放器中寫入相應的值。SPLK #01xxxxxxxxxxxxxxb,ADCTRL1;復位整個ADC模塊〔RESET=1〕NOP 的延時SPLK #00xxxxxxxxxxxxxxb,ADCTRL1;去除ADC的復位位〔RESET=0〕在缺省設置足夠時,復位ADC模塊之后,也可不向ADCTRL1中寫數(shù)。13~12:SOFTFREE位。這兩位打算仿真懸掛時,ADC模塊的工作狀況。在自可馬上停頓或者完成當前操作之后停頓。SOFT0FREE0仿真懸掛時,ADC模塊馬上停頓;10仿真懸掛時,ADC模塊完成當前轉(zhuǎn)換后停頓;x1自由運行,連續(xù)運行而不管仿真懸掛。11~8ACQPS3~ACQPS0ADC時鐘的預定標系數(shù),6-7。7:CPS位。轉(zhuǎn)換時鐘預定標位。該位打算了ADC轉(zhuǎn)換規(guī)律時鐘的預定標。FCLK=CLK/1;FCLK=CLK/2。 其中CLK為CPU時鐘頻率。6CONTRUN。該位打算排序器工作在連續(xù)轉(zhuǎn)換模式或者啟動/停頓模式。用戶可在當前轉(zhuǎn)換序列正被執(zhí)行時向該位寫數(shù),但是只有在當前轉(zhuǎn)換序列完成之后才生/CONV00。啟動/停頓模式;連續(xù)轉(zhuǎn)換模式。5:ADCINTPRI位。高優(yōu)先級;低優(yōu)先級。4SEQCASC。8個轉(zhuǎn)換通道的排序器;SEQ。表6-7 A/D模塊的預定標系數(shù)3CALENA。制止校準模式;使能校準模式。2BRGENA6-8。ADC輸入;參考的中點電壓被接到ADC輸入。VREFLOHI/LO6-8。VREFLOADC輸入的值;0STESTENA。制止自測試模式;使能自測試模式。表6-8 參考電壓位選擇定義2〔ADCTRL2〕--70A1h15:EVBSOCSEQ位。EVBSOC信號使能級聯(lián)排序器位。不起作用;允許級聯(lián)的排序器SEQ被大事治理器B的信號啟動。14:RSTSEQ1/STRTCAL1/啟動校準轉(zhuǎn)換方式位。在校準轉(zhuǎn)換方式制止的狀況下:不起作用;。在校準轉(zhuǎn)換方式使能的狀況下:不起作用;啟動校準轉(zhuǎn)換方式。位13:SOCSEQ1位。啟動SERQ1轉(zhuǎn)換位。以下觸發(fā)源可引起此位置1:S/W 軟件向該位寫1;EVA A;EVB 大事治理器〔僅在級聯(lián)模式下EXT 外部引腳〔即ADCSOC引腳。當一個觸發(fā)源到來時,有3種狀況可能發(fā)生:10,允許后來的觸發(fā)源被懸掛。01以表示一個觸發(fā)源懇求正被懸掛;SEQ10?!颯EQ1SOC1時,此時來到的觸發(fā)源被無視。去除一個懸掛的SOC懇求;SEQ1。注:當RSTSEQ1位和SOCSEQ1位在同一個指令中被設置時,將復位排序器而不正確的操作挨次應當是先設置RSTSEQ1SOCSEQ1RSTSEQ2位和SOCSEQ2位的操作也是如此。12:SEQ1BSY位。SEQ1忙狀態(tài)位。SEQ1處于空閑狀態(tài);SEQ1處于忙狀態(tài),一個轉(zhuǎn)換序列正在進展。。表6-9 位11~10中斷方式9:INTFLAGSEQ1位。ADCSEQ1的中斷標志位。無中斷大事發(fā)生;有中斷大事發(fā)生。8:EVASOCSEQ1ASEQ1SOC信號的屏蔽位。SEQ1EVA的觸發(fā)源啟動;SEQ1/SEQEVA的觸發(fā)源啟動。7:EXTSOCSEQ1SEQ1的啟動轉(zhuǎn)換位。不起作用;ADC自動轉(zhuǎn)換序列。6:RSTSEQ22。不起作用;CONV00。5:SOCSEQ2位。啟動SEQ2轉(zhuǎn)換位〔僅適用于雙排序器模式。1:S/W 1;EVB B。當一個觸發(fā)源到來時,有3種狀況可能發(fā)生:10,允許后來的觸發(fā)源被懸掛。01以表示一個觸發(fā)源懇求正被懸掛;SEQ20?!颯EQ2SOC1時,此時來到的觸發(fā)源被無視。去除一個懸掛的SOC懇求;SEQ2。4:SEQ2BSY位。SEQ2忙狀態(tài)位。SEQ2處于空閑狀態(tài);SEQ2處于忙狀態(tài),一個轉(zhuǎn)換序列正在進展。3~2:SEQ26-10。表6-10 位3~2中斷方式1:INTFLAGSEQ2位。ADCSEQ2的中斷標志位。無中斷大事發(fā)生;有中斷大事發(fā)生。SEQ2EVB的觸發(fā)源啟動;SEQ2EVB的觸發(fā)源啟動。〔MAXCONV〕--70A2h15~7:保存位。6~0:MAXCONVn位域。該位域打算了一次自動轉(zhuǎn)換最多轉(zhuǎn)換的通道個數(shù)。該位域及其操作隨著排序器工作模式的變化模式的變化而變化。10-2MAXCONV存放器位的編程。6-115個轉(zhuǎn)4SEQ1SEQ時,排序器指針依次從CONV00CONV04,并且這5個轉(zhuǎn)換結(jié)果依次被存放在轉(zhuǎn)換結(jié)果存放器00~04中。在雙排序器模式下使用SEQ2時,排序器指針依次從CONV08指508~12中。當SEQ1MAXCONV17SEQCNTRn6-11。6-11MAXCONV1的位定義和轉(zhuǎn)換個數(shù)之間的關(guān)系MAXCONV1_3~0?!睞UTO_SEQ_SR〕--70A7h15~12:保存位。11~8:SEQCNTR3~SEQCNTR06-12。7:保存位。位6~4:SEQ2-State2~SEQ2-State0。這幾位反映了SEQ2排序器指針的狀態(tài)。假設需要,那么用戶可以依據(jù)這幾位的值,在完畢轉(zhuǎn)換〔EOS〕信號來到之前,讀取中間結(jié)果。位3~0:SEQ1-State3~SEQ1-State0。這幾位反映了SEQ1排序器指針的狀態(tài)。假設需要,那么用戶可以依據(jù)這幾位的值,在完畢轉(zhuǎn)換〔EOS〕信號來到之前,讀取中間結(jié)果。每一個4位域都可為自動轉(zhuǎn)換選擇16個模擬輸入通道中的任意一個,見表6-13。表6-12 SEQCNTRn位定義表6-13 ADC輸入通道選擇定義〔CHSELSEQn〕--70A3h~70A6hADC轉(zhuǎn)換時鐘周期5個階段,見表6-14。〔SOS同步SOS同步只在一個轉(zhuǎn)換序列的第一個通道轉(zhuǎn)換時需要;·采樣時間(ACQ);·轉(zhuǎn)換時間(CONV);·完畢轉(zhuǎn)換時間(EOC),ACQ、CONVEOC在每個轉(zhuǎn)換中都需要;EOS,該時間僅在—個序列的最終一個轉(zhuǎn)換時需要。表6-14 ADC轉(zhuǎn)換各個階段需要的CLKOUT時鐘周期表6-15 ACQPS=1,2,3時ACQ的值圖圖6-8 ADC模塊的內(nèi)部時序圖ADC轉(zhuǎn)換應用舉例這里介紹一個A/DB的定時器4定時時間到來觸160~15。A/DA/D采樣。1、匯編源程序st0_temp.usect“.b20“,1;60st1_temp.usect“.b20“,1;61context.usect“.b20“,7;62-68STACK .usect “.stack“,40ADCOUNT .usect “.data0“,1 ADRESULT.usect “.data0“,1 ;289.include “F2407REGS.H“ ;引用頭部文件.def _c_int0;#################################################;(1)建立中斷向量表.sect “.vectors“ ;定義主向量段RSVECT B _c_int0 ;PM0 ResetVector1INT1 B GISR1 ;PM2 Intlevel1 INT2 B PHANTOM ;PM4 Intlevel2 5INT3 B PHANTOM ;PM6 Intlevel3 6INT4 B PHANTOM ;PM8 Intlevel4 7INT5 B PHANTOM ;PMA Intlevel5 8INT6 B PHANTOM ;PMC Intlevel6 9RESERVED B PHANTOM ;PME (AnalysisInt) 10SW_INT8 B PHANTOM ;PM10 UserS/Wint-SW_INT31 B PHANTOM ;PM3E UserS/Wint-;pvecs.sect “.pvecs“ ;定義子向量段PVECTORSBPHANTOM;Reservedpvectoraddroffset-00HBPHANTOM;Reservedpvectoraddroffset-01HBPHANTOM;Reservedpvectoraddroffset-02HBPHANTOM;Reservedpvectoraddroffset-03HB ADCINT_ISR ;Reservedpvectoraddroffset-04H ADC中斷B PHANTOM ;Reservedpvectoraddroffset-05HB PHANTOM ;Reservedpvectoraddroffset-41H〔2〕主程序:.text_c_int0SETCINTMCLRCSXMCLRCOVMCLRCCNFLDP#0E0HSPLK#81FEH,SCSR1;CLKIN=6M,CLKOUT=24MSPLK#0E8h,WDCR;關(guān)看門狗LDP#0SPLK#0001h,IMR;INT1中斷SPLK#0FFFFh,IFR;清全部中斷標志CALLADINIT;ADC程序CLRCINTM;開總中斷CALLAD;啟動模數(shù)轉(zhuǎn)換程序WAIT:NOPB WAIT〔3ADC初始化程序ADINIT:LDP #225 SPLK #0000H,T4CNT ;T4計數(shù)器清零SPLK#170CH,T4CON;T4為連續(xù)增計數(shù)模式,128分頻,且選用內(nèi)部時鐘源SPLK#075H,T4PR ;設置T4的周期存放器SPLK#0400H,GPTCONB;T4AD轉(zhuǎn)換;EVB中斷標志,寫“1“0SPLK#0000H,EVBIMRB;LDP#DP_PF2;設置ADC掌握存放器SPLK #0010H,ADCCTRL1;ACQPS3-ACQPS00,;CPS0,AD為啟動/停頓模式,SPLK#8404H,ADCCTRL2;排序器為級連工作方式,;且制止特別的兩種工作模式SPLK#000FH,MAXCONV;16通道SPLK#3210H,CHSELSEQ1;SPLK#7654H,CHSELSEQ2SPLK#0BA98H,CHSELSEQ3SPLK#0FEDCH,CHSELSEQ4LDP#DP_SARAM2 SPLK #ADRESULT,ADCOUNTRET〔4〕啟動模數(shù)轉(zhuǎn)換程序AD:LDP #225LACL T4CONOR #40H ;4SACL RET〔5〕中斷程序GISR1: INT1中斷子程序入口;保護現(xiàn)場LDP#0;保存機器上下文SST#0,st0_temp;使用自動尋址,DP-0SST#1,st1_temp;保存狀態(tài)存放器到B2DARAM.LDP#0SACLcontextACC16位SACHcontext+1ACC16位SAR AR1,context+2SAR AR2,context+3SAR AR3,context+4SAR AR4,context+5SAR AR5,context+6LDP #0E0HLACC PIVR,1 ;讀取外設中斷向量存放〔PIV并左移一ADD #PVECTORS ;加上外設中斷人口地址BACC ;跳到相應的中斷效勞子程序ACC(15:0) ADCINT_ISR:CLRC SXMLDP #DP_SARAM2LAR AR1,ADCOUNTLAR AR0,#15LAR AR2,#RESULT0MAR *,AR2ADC1:LACC SACH *ADRK #32 MAR *,AR0BANZ ADC1,*-,AR2 移LDP #DP_PF2LACL ADCCTRL2OR #4000H ;復位SEQ1AND #0FFDFH SACL ADCCTRL2LDP #DP_SARAM2LACL ADCOUNTSUB #ADRESULT+31BCND ADC2,GEQADD #ADRESULT+32 SACL ADCOUNTB GISR1_RETADC2:

SPLK #ADRESULT,ADCOUNT LACL T4CONAND #0FFBFH ;4AD轉(zhuǎn)換SACL T4CONB GISR1_RETGISR1_RET:;中斷返回出口;恢復現(xiàn)場LDP#DP_EVASPLK#0FFFFH,EVAIFRALDP#0LARAR5,context+6LARAR4,context+5LARAR3,context+4LARAR2,context+3LARAR1,context+2LACCcontext+1,16ADDScontextLST#1,st1_tempLST #0,st0_tempCLRC INTM RET〔6〕假中斷程序PHANTOMKICK_DOG RETEND2、C語言源程序中,A/D轉(zhuǎn)換的結(jié)果#include “register.h“int ADRESULT[16]; 的結(jié)果volatile unsigned int j; //定義一個指針變量jint i=0x00,cesi;// 屏蔽中斷子程序voidinlinedisable{asm(“setcINTM“);}//開總中斷子程序voidinlineenable{asm(“clrcINTM“);}//系統(tǒng)初始化子程序void initial{asm(“setcSXM“);//符號位擴展有效asm(“clrcOVM“);//累加器

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論