版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 運(yùn)輸服務(wù)合同(2篇)
- 少先隊(duì)課件模板
- 推敲課件蘇教版
- 古詩詞誦讀《燕歌行并序》-高二語文大單元教學(xué)同步備課(統(tǒng)編版選擇性必修中冊)
- 第14課 《背影》-八年級(jí)語文上冊同步備課精講(統(tǒng)編版)
- 螞蟻 故事 課件
- 西南林業(yè)大學(xué)《比較文學(xué)概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 西京學(xué)院《建筑信息模型》2022-2023學(xué)年第一學(xué)期期末試卷
- 西京學(xué)院《機(jī)械原理》2022-2023學(xué)年第一學(xué)期期末試卷
- 溫度變化對化學(xué)平衡的移動(dòng)影響
- 體育社會(huì)學(xué)-完整全套教學(xué)課件
- 部編版七年級(jí)道德與法治上冊第一單元復(fù)習(xí)教案
- 智能便攜式電動(dòng)滑板-互聯(lián)網(wǎng)+創(chuàng)業(yè)項(xiàng)目計(jì)劃書
- 冒泡排序和選擇排序課件
- 消防設(shè)施維護(hù)保養(yǎng)作業(yè)指導(dǎo)書消防維護(hù)保養(yǎng)的概述
- 術(shù)后顱內(nèi)感染課件-參考
- RBA(EICC)宗教信仰調(diào)查問卷
- 徒手控制技術(shù)-切別摔講解課件
- 民族最閃亮的坐標(biāo)(2020遼寧錦州中考議論文閱讀試題含答案)
- 常見的色素性疾病教學(xué)課件
- 學(xué)習(xí)弘揚(yáng)焦裕祿精神
評論
0/150
提交評論