第6章補(bǔ)充2 以實(shí)驗(yàn)一為例講解程序課件_第1頁
第6章補(bǔ)充2 以實(shí)驗(yàn)一為例講解程序課件_第2頁
第6章補(bǔ)充2 以實(shí)驗(yàn)一為例講解程序課件_第3頁
第6章補(bǔ)充2 以實(shí)驗(yàn)一為例講解程序課件_第4頁
第6章補(bǔ)充2 以實(shí)驗(yàn)一為例講解程序課件_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

DSP程序開發(fā)以最小系統(tǒng)板的LED燈閃爍程序?yàn)槔悍謩e利用匯編語言、C語言、C語言和匯編語言混合編程三種方法實(shí)現(xiàn)DSP最小系統(tǒng)板LED燈D1閃爍。2、電路原理圖:簡化原理圖DSP5402編程思路:軟件延時(shí)程序?qū)崿F(xiàn)LED燈閃爍編程原理是:循環(huán)對XF位置1和清0,用示波器可以在XF腳檢測到電平高低周期性變化,當(dāng)然也可以通過LED的閃爍來驗(yàn)證程序的正確與否(但閃爍頻率不能太快),在硬件調(diào)試時(shí)常用于檢測DSP是否工作。3、操作步驟要點(diǎn):(1)新建項(xiàng)目/新建文件/添加文件到項(xiàng)目/編輯文件;(2)點(diǎn)“rebuildall”工具進(jìn)行編譯、匯編和鏈接;(3)裝載上一步生成的out文件;(4)點(diǎn)擊“運(yùn)行”按鈕,觀察小系統(tǒng)板D1閃爍。4、匯編程序參考:(主程序文件)4、匯編程序參考:中斷向量表文件鏈接命令表文件5、C程序參考:(源程序均為C文件)中斷向量表C文件主函數(shù)C文件鏈接命令表文件DSP的C語言編寫的程序包括寄存器頭文件、中斷向量表文件、主函數(shù)文件、鏈接命令表文件和庫文件(TI提供的運(yùn)行時(shí)支持庫),寄存器頭文件和庫文件不需要用戶編寫!6、C和匯編混合編程參考:中斷向量表ASM文件主函數(shù)C文件延時(shí)程序ASM文件其他文件不變!程序識(shí)讀提示:(1)在中斷向量表中中斷(Reset中斷)是每個(gè)程序都應(yīng)該有的,在不需要其它中斷的情況下,可以只用這一部分,后面全部省掉。(2)匯編編程時(shí)有一個(gè)重要問題,即中斷向量表的定位,上電時(shí)默認(rèn)是在FF80H處,但實(shí)際上很多情況下無法把中斷向量表加載到FF80處,一般重定向到0080H,并在程序開頭重新設(shè)置一下IPTR的值。

K_IPTR .set 0080h LDMPMST,AAND #7FH,A OR#K_IPTR,A STLM A,PMST要注意的是這段代碼要用到累加器A,所以嵌入這段代碼的地方必須在用到累加器A之前。思考題:認(rèn)真閱讀教材和參考書,將延時(shí)程序改寫為定時(shí)器查詢方式和定時(shí)器中斷控制的方式,分別用本次課學(xué)習(xí)到的匯編、C語言和混合編程三種方法實(shí)現(xiàn)。提示:定時(shí)查詢方式實(shí)現(xiàn)LED燈閃爍定時(shí)器查詢的實(shí)驗(yàn)原理來自于定時(shí)器的邏輯框圖:

定時(shí)器寄存器(TIM)定時(shí)器周期寄存器(PRD)定時(shí)器控制器寄存器(TCR)主要部件保留15~

12soft11free10PSC9~

6TRB5TDDR3~

0TSS4TCR中的控制位和狀態(tài)位定時(shí)器開始定時(shí)后,減1計(jì)數(shù)器開始計(jì)數(shù),計(jì)數(shù)到0再減1時(shí)產(chǎn)生借位,將會(huì)使中斷標(biāo)志寄存器IFR的第3位TINT置1,在程序中可以不斷地查詢該標(biāo)志位的狀態(tài),以判斷定時(shí)時(shí)間到否。原理可參見教材。定時(shí)時(shí)間=TclkX(Ttddr+1)X(Tprd+1)可以思考下面兩個(gè)問題:1、請計(jì)算在本例中最大定時(shí)時(shí)間?2、該怎樣用定時(shí)器查詢方式實(shí)現(xiàn)LED閃爍。1)TCR中的TSS位置1,關(guān)閉定時(shí)器。2)加載PRD。3)重新加載TCR定時(shí)器初始化的步驟

使TDDR初始化令TSS位為0TRB位置1給出定時(shí)器查詢實(shí)現(xiàn)LED燈閃爍的匯編程序:定時(shí)中斷方式實(shí)現(xiàn)LED燈閃爍

中斷原理的請參照教材,編程思路和“單片機(jī)定時(shí)器中斷程序”的編寫方法相似。注意如果編程時(shí)用到除復(fù)位中斷以外的其它中斷源,必須具備完整的中斷向量表。給出“定時(shí)器中斷實(shí)現(xiàn)LED燈閃爍”的匯編程序(1)匯編主程序文件中斷向量表文件:鏈接命令文件:實(shí)例二方波發(fā)生器設(shè)計(jì)

用TMS320VC5402實(shí)現(xiàn)方波發(fā)生器。假設(shè)時(shí)鐘頻率為4MHz,在XF端輸出占空比為50%的方波,方波的周期由片上定時(shí)器確定,采用中斷方法實(shí)現(xiàn)。定時(shí)器初始化關(guān)閉定時(shí)器,TCR中的TSS=1;加載PRD。設(shè)定定時(shí)中斷周期,每中斷一次,輸出端電平取反一次;啟動(dòng)定時(shí)器,初始化TDDR,TSS=0,TRB=1中斷初始化中斷允許寄存器IFR中的定時(shí)中斷位TINT=1,清除未處理完的定時(shí)中斷;

中斷屏蔽寄存器IMR中的定時(shí)屏蔽位TINT=1,開放定時(shí)中斷;狀態(tài)控制寄存器ST1中的中斷標(biāo)志位INTM=0,開放全部中斷。

周期為4ms的方波發(fā)生器,定時(shí)中斷周期為2ms,每中斷一次,輸出端電平取一次反。初始化定時(shí)器0;根據(jù)定時(shí)長度計(jì)算公式:Tt=T*(TDDR+1)*(PRD+1)給定TDDR=9,PRD=79,CLKOUT主頻f=4MHz,T=250nsTt=250*(9+1)*(79+1)=2,000,000(ns)=2(ms)

#include<stdio.h>#include<stdlib.h>#include<math.h>#include<file.h>#include<std.h>#defineIMR*(volatileunsignedint*)0x00#defineIFR*(volatileunsignedint*)0x01#defineST1*(volatileunsignedint*)0x07#definePRD*(volatileunsignedint*)0x25#defineTCR*(volatileunsignedint*)0x26externintflag=0;當(dāng)前XF輸出電平標(biāo)志,

flag=1,則XF=1;否則,XF=0interruptvoidFB(void);主程序代碼主程序代碼voidmain(){TCR=TCR|0X0010;TSS=1,停止定時(shí)器0TIM=79;PRD=79;TCR=0X0269;啟動(dòng)定時(shí)器0IFR=IFR|0X0008;IFR中TINT=1,清除未處理完的定時(shí)中斷

IMR=IMR|0X0008;中斷屏蔽寄存器IMR中定時(shí)屏蔽位

TINT=1,開放定時(shí)中斷

ST1=ST1&0XF7FF;開放全部可屏蔽中斷

while(1);等中斷

{

}}中斷服務(wù)程序代碼interruptvoidFB()中斷服務(wù)程序{if(flag==1)當(dāng)前XF=1{ST1=ST1&0xdfff;輸出XF=0flag=0;}else當(dāng)前XF=0{ST1=ST1|0X2000;輸出XF=1flag=1;}}中斷向量表文件vectors.asm.sect"vectors".ref_main在當(dāng)前模塊中使用但在其他段中定義的符號(hào)

.ref_FB

RESET:;resetvectorBD_main復(fù)位之后執(zhí)行主程序

NOPNOPnmi:RETE;enableinterruptsandreturnfromoneNOPNOPNOP;softwareinterruptssint17.space4*16sint18.space4*16sint19.space4*16sint20.space4*16sint21.space4*16sint22.space4*16sint23.space4*16sint24.space4*16sint25.space4*16sint26.space4*16sint27.space4*16sint28.space4*16sint29.space4*16sint30.space4*16int0:RETE;Externaluserinterrupt#0NOPNOPNOPint1:RETE;Externaluserinterrupt#1NOPNOPNOP中斷向量表文件vectors.asmint2:RETE;Externaluserinterrupt#2NOPNOPNOPtint:BD_FB;Timerinterrupt中斷服務(wù)程序入口

NOPNOP

rint0:RETE;McBSP#0receiveinterrupt(default)NOPNOPNOPxint0:RETE;McBSP#0transmitinterrupt(default)NOPNOPNOPrint2:RETE;McBSP#2receiveinterrupt(default)NOPNOPNOP中斷向量表文件vectors.asmxint2:RETE;McBSP#2transmitinterrupt(default)NOPNOPNOPint3:RETE;Externaluserinterrupt#3NOPNOPNOPhint:RETE;HPIinterruptNOPNOPNOPrint1:RETE;McBSP#1receiveinterrupt(default)

溫馨提示

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

評論

0/150

提交評論