自動(dòng)化論文:基于DSP的步進(jìn)電機(jī)控制系統(tǒng)_第1頁(yè)
自動(dòng)化論文:基于DSP的步進(jìn)電機(jī)控制系統(tǒng)_第2頁(yè)
自動(dòng)化論文:基于DSP的步進(jìn)電機(jī)控制系統(tǒng)_第3頁(yè)
自動(dòng)化論文:基于DSP的步進(jìn)電機(jī)控制系統(tǒng)_第4頁(yè)
自動(dòng)化論文:基于DSP的步進(jìn)電機(jī)控制系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩71頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

C編譯器對(duì)C程序編譯后會(huì)自動(dòng)生成若干個(gè)可以進(jìn)行重定位的代碼和數(shù)據(jù)段。這些段分為兩種類型,一種是已初始化段,另一種是未初始化段。己初始化段主要包括數(shù)據(jù)和可執(zhí)行代碼,C編譯器共生成4個(gè)己初始化段?!?text段:包含可執(zhí)行代碼和字符串;·.cinit段:包含初始化變量和常數(shù)表;·.const段:字符串和switch表。在大存儲(chǔ)模式下,常數(shù)表也包含在本段中;·.swith段:包含為swith語(yǔ)句建立的表格。未初始化段用于保留存儲(chǔ)空間,程序利用這些空間在運(yùn)行時(shí)創(chuàng)建和存儲(chǔ)變量。C編譯器創(chuàng)建了一個(gè)未初始化段?!?bss段:保留全局和靜態(tài)變量空間。在程序開(kāi)始運(yùn)行時(shí),C初始化程序?qū)?shù)據(jù)從,cinit段拷貝到.bss段?!?stack段:系統(tǒng)堆棧段?!?system段:為動(dòng)態(tài)存儲(chǔ)函數(shù)malloc,calloc和realloc分配存儲(chǔ)空間。若程序中沒(méi)有用到這些函數(shù),編譯器就不創(chuàng)建.system段。2.C語(yǔ)言中進(jìn)行中斷處理使用C語(yǔ)言進(jìn)行中斷處理,包括以下步驟:1.創(chuàng)建中斷服務(wù)函數(shù);2.初始化中斷向量表,在存儲(chǔ)器映像中建立中斷向量;3.使能中斷;4.使能中斷源。在CCS中使用C語(yǔ)言創(chuàng)建中斷服務(wù)函數(shù),除了對(duì)其名稱有特殊要求外,它們同普通的C函數(shù)沒(méi)有區(qū)別。對(duì)定點(diǎn)DSP編譯器,中斷服務(wù)函數(shù)的名稱必須為c_intn,n代表0到9之間的一個(gè)數(shù)。如果使用6.50版的定點(diǎn)DSPC編譯器,可以使用關(guān)鍵字interrupt來(lái)代替c_intn。下例給出了中斷函數(shù)的兩種定義方式。voidc_intl(void){ReceiveCounter++;}InterruptvoidSerialPortReceiveISP(void){…}在匯編程序中引用C程序定義的變量或函數(shù),需要在相應(yīng)的變量名或函數(shù)名前加下劃線。比如函數(shù)c_intl()在匯編程序中引用時(shí)應(yīng)寫成_c_intl()的形式。在編寫中斷服務(wù)程序時(shí),需要注意以下幾點(diǎn):中斷向量的位置和中斷服務(wù)程序的功能是無(wú)關(guān)的,中斷服務(wù)程序的名字與其功能也無(wú)關(guān);·不能有任何參數(shù)傳送給中斷服務(wù)程序,中斷服務(wù)程序也不能返回參數(shù)。中斷服務(wù)程序建立以后,需要將其地址(中斷向量)裝載到存儲(chǔ)器的相應(yīng)位置。這可以通過(guò)創(chuàng)建中斷向量表文件實(shí)現(xiàn)。中斷向量表文件由匯編語(yǔ)言編寫,內(nèi)容為中斷向量和跳轉(zhuǎn)到指定地址指令。它的書寫格式比較固定,參看下例。=========?vectors.asm=========.sect“.vectors”.ref_c_int00;C程序執(zhí)行入口.align0x80;必須放置在頁(yè)邊界上RESET:BD_c_int00;執(zhí)行完該語(yǔ)句的下面一條語(yǔ)句后,跳轉(zhuǎn)到c_int00STM#200,SP;設(shè)置堆棧大小為200個(gè)字nmi:RETE;非屏蔽中斷返回NOPNOPNOP;軟件中斷sintl7.space4*16sintl8.space4*16sintl9.space4*16sint20.space4*16sint2l.space4*16sint22.space4*16sint23.space4*16sint24.space4*16sint25.space4*16sint26.space4*16sint27.space4*16sint28.space4*16sint29.space4*16sint30.space4*16int0:RETE;外部中斷0NOPNOPNOPintl:RETE;外部中斷1NOPNOPNOPint2:RETE;外部中斷2NOPNOPNOPtint:RETE;定時(shí)器0中斷NOPNOPNOPrint0:RETE;多通道緩沖串口0接收數(shù)據(jù)中斷NOPNOPNOPxintl:RETE;多通道緩沖串口1發(fā)送數(shù)據(jù)中斷NOPNOPNOPInt3:RETE;外部中斷3NOPNOPNOPend指令.sect表明本文件是中斷向量表文件。align0x80將SPC(Sectionprogramcounter)的值置于本段頁(yè)邊界上。.space用于處理未用的或者保留的中斷向量位置,對(duì)C54xDSP而言,它保留的空間的大小以位(bit)計(jì)算。另外,C54xDSP要求每個(gè)中斷矢量占用4個(gè)字,如果不夠4個(gè)字,可用NOP指令填充,每個(gè)NOP指令占用1個(gè)字。中斷向量表文件創(chuàng)建完成后,需要將其加入到工程中同其它文件一起編譯、鏈接。

附錄二系統(tǒng)控制源程序CMD文件;FileName:exp03.asm;learnhowtooperatetheI/Oports;getsomeknowledgeoftherts.libfile .mmregs .global _main .text_main: stm 3000h,sp;initpointerto3000h;***********************************************;***********initpausedata*********************;*********************************************** stm 1000h,ar1;definetheaddress stm03h,ar2;4phase stm40h,ar5;sumrotatenumber st 0003h,*ar1+;0--1100(abcd) st0006h,*ar1+;1--0110(abcd) st000ch,*ar1+;2--0011(abcd) st0009h,*ar1+;3--1001(abcd);***********************************************;***********positiverotate*********************;*********************************************** loopa3:stm40h,ar5;sumpositiverotatenumberloopa1: stm1000h,ar1 stm03h,ar2;******************************************** loopa2: portw *ar1+,01h nop nopcall delay banzloopa2,*ar2- call delayb banzloopa1,*ar5-;***********************************************;***********reverserotate**********************;*********************************************** loopb3:stm40h,ar5;;sumreverserotatenumberloopb1: stm1003h,ar1 stm03h,ar2;********************************************loopb2: p

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論