实验3-TMS320C55x定时器的汇编LED实现15页

上传人:文库****9 文档编号:170624571 上传时间:2021-03-03 格式:DOCX 页数:15 大小:1.06MB
返回 下载 相关 举报
实验3-TMS320C55x定时器的汇编LED实现15页_第1页
第1页 / 共15页
实验3-TMS320C55x定时器的汇编LED实现15页_第2页
第2页 / 共15页
实验3-TMS320C55x定时器的汇编LED实现15页_第3页
第3页 / 共15页
实验3-TMS320C55x定时器的汇编LED实现15页_第4页
第4页 / 共15页
实验3-TMS320C55x定时器的汇编LED实现15页_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《实验3-TMS320C55x定时器的汇编LED实现15页》由会员分享,可在线阅读,更多相关《实验3-TMS320C55x定时器的汇编LED实现15页(15页珍藏版)》请在金锄头文库上搜索。

1、实验3 TMS320C55x定时器的汇编LED灯实现一、实验目的1 通过实验熟悉TMS320VC5509A的定时器;2 掌握VC5509A定时器的使用方法;3 掌握VC5509A的中断结构和对中断的处理流程;4 学会在汇编条件下编写中断程序,以及运用中断控制程序 流程。二、实验设备计算机,ICETEK-VC5509-A 实验箱(或ICETEK 仿真器+ICETEKVC5509-A 评估板+相关连线及电源)。三、实验内容1 VC5509A的初始设置,包括堆栈设置和时钟设置;2 VC5509A中断向量表的建立;3 定时器中断服务程序的编写。四、实验原理为了实现定时器的正确定时,首先需要设置VC55

2、09A的时钟,以下分别说明“时钟”、“中断”和“定时器”3个部分的原理。4.1 时钟部分VC5509A芯片内的时钟发生器从CLKIN引脚接受输入时钟信号,将其变换为CPU及其外设所需要的工作时钟;工作时钟经过分频通过引脚CLKOUT输出,可供其他器件使用。时钟发生器内有一个数字锁相环DPLL和一个时钟模式寄存器CLKMD。VC5509A的时钟发生器有3种工作模式,即旁路模式、锁定模式和Idle模式。时钟模式寄存器(CLKMD)中的PLL ENABLE为控制旁路模式和锁定模式。可以通过关闭CLKGEN Idle模块使时钟发生器工作在Idle模式。在本实验中设置时钟工作在锁定模式。设置PLL EN

3、ABLE=1,PLL工作于锁定模式,则输出的时钟频率由下式确定,即 输出频率=PLL MULTPLL DIV+1输入频率 (1)图 1 锁定模式用到的CLKMD位(参考TMS320C55x DSP Peripherals Reference Guide.pdf)VC5509A系统的晶振时钟振荡频率为12MHz。通过设置DPLL,使系统时钟的时钟频率为144MHz。由图1知具体设置如下:(1) PLL ENABLE = 1b(2) 由公式(1),得144MHz=PLL MULTPLL DIV+112MHz取PLL DIV=0,PLL MULT=12,即:D6D5(PLL DIV)=00b,D11

4、-D7(PLL MULT)=1100b(3) CLKMD取值为:001011000010011b。汇编语言实现:MOV #001011000010011b ,port(#CLKMD)注: CLKMD .set 1C00H(CLKMD的地址为1C00H)4.2 中断部分中断是由硬件或软件驱动的信号,使DSP将当前的程序挂起,执行另一个称为终端服务子程序(ISR)的任务。VC5509A支持32个ISR。图2为VC5509A的中断向量表。图 2 VC5509A的中断向量表参考TMS320VC5509A Fixed-Point Digital Signal Processor (Rev. K).pdf

5、中断向量的初始化可由.ivec命令完成。具体参考图3。图 3 .ivec命令参考TMS320C55x Assembly Language Tools Users Guide (Rev. H).pdf由图2和图3编写汇编文件vectors.asm:.sect .vectors.refstart,tint0_isrrsv.ivecstart,use_retanmi .ivecno_isrint0.ivecno_isrint2.ivecno_isrtint0.ivectint0_isrrint0.ivecno_isrrint1.ivecno_isrxint1.ivecno_isrusb.ivecno

6、_isrdmac1.ivecno_isrdspint.ivecno_isrint3.ivecno_isrrint2.ivecno_isrxint2.ivecno_isrdmac4.ivecno_isrdmac5.ivecno_isrint1.ivecno_isrxint0.ivecno_isrdmac0.ivecno_isrint4.ivecno_isrdmac2.ivecno_isrdmac3.ivecno_isrtint1.ivecno_isriic.ivecno_isrberr.ivecno_isrdlog.ivecno_isrrtos.ivecno_isrsint27.ivecno_i

7、srsint28.ivecno_isrsint29.ivecno_isrsint30.ivecno_isrsint31.ivecno_isr .text .def no_isrno_isr: b #no_isr本实验捡回用到定时器0,其中断服务程序(tint0_isr)如下:tint0_isr:nopnop ADD #1, AR2 BCC L2,AR2 !=#100; MOV *(#LBDS),AR2; XOR #1, AR2 AMAR *(#LBDS),XAR3XOR #1,*AR3nopnop;MOV AR3,*(#LBDS) MOV #0,AR2L2:nopnopnopnopnopnop

8、RETI由以下语句设置中断向量的地址。MOV #00d0h,mmap(IVPH) MOV #00d0h,mmap(IVPD) MOV #0010h,mmap(IER0)MOV #0xffff,mmap(IFR0)MOV #0010h,mmap(DBIER0)4.3 定时器0部分VC5509A芯片内提供了2个20位通用定时器,可向CPU产生周期性中断或向DSP芯片外的器件提供周期信号。每个定时器由2部分组成:一个4位的预定标计数寄存器(PSC)和一个16位主计数器(TIM),如图4。图 4 定时器结构框图TMS320VC5503/5507/5509/5510 DSP Timers Referen

9、ce Guide.pdf定时器发送中断信号或同步时间的频率信号的频率可用下式计算TINT频率=输入时钟频率(TDDR+1)(PRD+1) (2)汇编语言实现:MOV #0x04f0,PORT(#TCR0) MOV #0x0000,PORT(#TIM0) MOV #0x1fff,PORT(#PRD0) MOV #0x000f,PORT(#PRSC0) MOV #0x00e0,PORT(#TCR0)4.4 程序清单程序主要由3个文件工程:4.4.1vectors.asm中断向量表.sect .vectors.refstart,tint0_isrrsv.ivecstart,use_retanmi .

10、ivecno_isrint0.ivecno_isrint2.ivecno_isrtint0.ivectint0_isrrint0.ivecno_isrrint1.ivecno_isrxint1.ivecno_isrusb.ivecno_isrdmac1.ivecno_isrdspint.ivecno_isrint3.ivecno_isrrint2.ivecno_isrxint2.ivecno_isrdmac4.ivecno_isrdmac5.ivecno_isrint1.ivecno_isrxint0.ivecno_isrdmac0.ivecno_isrint4.ivecno_isrdmac2

11、.ivecno_isrdmac3.ivecno_isrtint1.ivecno_isriic.ivecno_isrberr.ivecno_isrdlog.ivecno_isrrtos.ivecno_isrsint27.ivecno_isrsint28.ivecno_isrsint29.ivecno_isrsint30.ivecno_isrsint31.ivecno_isr .text .def no_isrno_isr: b #no_isr4.4.2 timer.asm主程序.mmregs.datastack_len.set 200sysstack_len.set 200stack.usect

12、.stack,stack_lensysstack.usect.sysstack,sysstack_lenTIM0.set0x1000PRD0.set0x1001TCR0.set0x1002PRSC0.set0x1003CLKMD .set 0x1C00LBDS.set 0x400001.text.def start,tint0_isrstart:BSET ARMS.arms_onBCLR C54CM.c54cm_offBCLR AR0LC BCLR AR1LC BCLR AR2LCBCLR AR3LCBSET INTMAMOV #(stack+stack_len),xsp AMOV #(sys

13、stack+sysstack_len),xssp MOV #001011000010011b,port(#CLKMD);AMAR *(#400001h),XAR3MOV#1,*(#LBDS)MOV #0,AR2MOV #00d0h,mmap(IVPH) MOV #00d0h,mmap(IVPD) MOV #0010h,mmap(IER0)MOV #0xffff,mmap(IFR0)MOV #0010h,mmap(DBIER0)MOV #0x04f0,PORT(#TCR0) MOV #0x0000,PORT(#TIM0) MOV #0x1fff,PORT(#PRD0) MOV #0x000f,PORT(#PRSC0) MOV #0x00e0,PORT(#TCR0)BCLR INTML1:nop

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号