ImageVerifierCode 换一换
格式:DOC , 页数:11 ,大小:81KB ,
资源ID:7591045      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/7591045.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(实验四定时器中断实验.doc)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

实验四定时器中断实验.doc

1、实验四 定时器中断实验 一:实验目的 1.熟悉定时器初始化的步骤; 2.熟悉定时器控制寄存器(TCR)的含义和使用; 3.熟悉定时器的原理和应用。 二:实验内容 本实验要求编写一个简单的定时器中断程序,设置一定的周期控制与XF引脚相连的LCD指示灯。当定时器中断产生时可以观察到LCD周期性闪烁。 三:实验原理 1.定时器 SRESET .C54xx系列的DSP都具有一个或两个预定标的片内定时器,这种定时器是一个倒数定时器,它可以被特定的状态位实现停止、重启动、重设置或禁止。定时器在复位后就处于运行状态,为了降低功耗可以禁止定时器工作。应用中可以用定时器来产生周期性的

2、CPU中断或脉冲输出。定时器的功能方框图如图9.1所示,其中有一个主计数器(TIM)和一个预定标计数器(PSC)。TIM用于重装载周期寄存器PRD的值,PSC用于重装载周期寄存器TDDR的值。 图5.1中有一个   信号,是在器件复位时,DSP向外围电路(包括定时器)发送的一个信号,此信号将在定时器上产生以下效果:寄存器TIM和PRD装载最大值(0FFFFH);TCR的所有位清0;结果是分频值为0,定时器启动,TCR的FREE和SOFT为0。 TSS ◦ CPU时钟 TRB RESET • • • • ≥1 PRD TIM 错位值 TDDR & P

3、SC 错位值 ≥1 ≥1 TINT TOUT 图5.1定时器的功能方框图 定时器实际上是有20bit的周期寄存器。它对CLKOUT信号计数,先将PSC(TCR中的D6~D9位)减1,直至PSC为0,然后把TDDR(TCR中的低4位)重新装载入PSC,同时将TIM减1,直到TIM减为0。这时CPU发出TINT中断,同时在TOUT引脚输出一个脉冲信号,脉冲宽度与CLKOUT一致,然后将PRD重新装入TIM,重复TSS 下去直到系统或定时器复位。 定时器产生中断的计算公式如下: 1 tc 1 TDDR+1 1

4、 PRD+1 TINT的频率= × × (其中tc为 CLKOUT的周期) 定时器由三个寄存器组成:TIM、PRD、TCR。 TIM:定时器寄存器,用于装载周期寄存器值并自减1。 PRD:周期寄存器,用于装载定时器寄存器。 TCR:定时器控制寄存器,包含定时器的控制状态位。 定时器是一个片内减计数器,用于周期地产生CPU中断。定时器被预定标计数器所触发,后者每个CPU时钟周期减1,当计数器减至0时,会产生一个定时器中断,同时在下一周期计数器被定时周期值重新装载。 在正常操作模式下,当TIM自减至0时,TIM将被PRD内的数值重装载

5、在硬件复位或定时器单独复位(TCR中TRB位置1)的情况下,主定时器模块输出的是定时器中断(TINT)信号。该中断被发送至CPU,同时由TOUT引脚输出。TOUT脉冲的宽度等于CLKOUT的时钟宽度。 预定标模块由两个类似TIM和PRD的单元构成。它们是预定标计数器(PSC)和定时器分频寄存器(TDDR)。PSC、TDDR是RCR寄存器的字段。在正常操作时PSC自减为0,TDDR值装入PSC,同样在硬件复位或定时器单独复位的情况下,TDDR也被装入PSC。PSC被CPU时钟定时,即每个CPU时钟使PSC自减1。PSC可被TCR读取,但不能直接写入。 当TSS置位时,定时器停止工作。若不需

6、要定时器,终止定时操作,可使芯片工作在低功耗模式,并且可以使用与定时器相关的两个寄存器(TIM和PRD)作为通用的存储器单元,可以在任意周期对它们进行读或写操作。 TIM的当前值可被读取,PSC也可以通过TCR读取。因为读取这两个存储器需要两个指令,而在两次读取之间因为自减,数值可能改变,因此,PSC两次读的结果可能有差别,不够准确。若要准确测量时序,在读这两个寄存器值之前可先中止定时器,对TSS置1和清0后,可重新开始定时。 通过TOUT信号或中断,定时器可以用于产生周边设备的采样时钟,如模拟接口。对于有多个定时器的DSP,由寄存器GPIOCR中的第15位控制使用某一个定时器产生的TOU

7、T信号。 2.定时器初始化 (1)定时器初始化步骤 ●TCR的TSS位写1,定时器停止工作; ●装载TRD; ●初始化TCR中的TDDR,并对TCR中的TSS置0,对TRB置1来重装载定时器周期。 (2)初始化定时器中断方法(INTM=1) ●FIR中的TINT写1,以清除挂起的定时器中断; ●IMR中的TINT置1,启动定时器中断; ●启动全部中断,INTM置0; ●在重启(RESET)后,TIM和PRD被设置为最大值(FFFFH),TCR中的TDDR置0。 (3)定时控制寄存器(TCR) TCR为一个映射到片内的16位寄存器,它可以控制: ●定时器的工作方式;

8、●设定预定标计数器中的当前数值; ●启动或停止定时器; ●重新装载定时器; ●设置定时器的分频值。 TCR的位描述如图5.2 15~12 11 10 9~6 5 4 3~0 Reserved SOFT FREE PSC TRB TSS TDDR 图5.2 TCR位描述 ●第15~12位Reserved:保留位,总为0 。 ●第11~10位SOFT、FREE:特殊的仿真位。高级语言调试程序中出现一个断点时,该仿真位决定定时器的状态。如果FREE位设为1,则当遇到一个断点时,定时器继续运行(即自由运行),在这种情况下,SOFT被忽略。但

9、是,如果FREE为0,则SOFT有效。在此情况下,如果SOFT=0,则定时器停止,下一次TIM的值递减;如果SOFT=1,则当TIM减到0,定时器停止工作。 ●第9~6位PSC:定时器预定标计数器。这4位用来保存定时器的当前预定标计数器。每个CLKOUT周期内,若PSC值大于0,PSC减1,在PSC减到0后的下个CLKOUT周期内,装载TDDR的内容,并且TIM减1。每当软件设置了定时器重载位(TRB)时,PSC也被重新装载。可通过TCE检测PSC,但PSC不能直接设置,PSC值必须从TDDR中提取。复位时,PSC设为0。 ●第5位TRB:定时器重载位。当TRB写入1时,TIM装载PRD中

10、的值,并且PSC装载TDDR中的值。TRB位总被读为0。 ●第4位TSS:定时器停止状态位。TSS停止或重新启动定时器。复位时,TSS清零,并且立即启动定时器。TSS=0,启动或重新启动定时器;TSS=1,停止定时。注意,此位为只读位,读出的值永远为0。 ●第3~0位TDDR:定时器分频比寄存器。每经过(TDDR+1)个CLKOUT周期,TIM减1。复位时,TDDR位清0。如果想通过一个整数因子增加总的定时计数值,则将整数因子减1后写入这4位。当PCS值为0时,在随后的一个CLKOUT周期内,TDDR内容将被重新装入PSC,并且TIM减1。每当TRB重载入时,TDDR也将被PSC重新装载。

11、 3:定时器应用: C54x定时器所能计计时的长度可通过公式Tx(TDDR+1)×(PRD+1)来计算,其中,TDDR最大值为0FH,PDR最大值为0FFFFH,所以能计时的最长长度为T×1048576,由所采用的机器周期T决定,例如f=4MHz,T=250,则最长定时时间为:Tmax=250×1048576=262.144(ms) 例如若需要更长的计时时间,则可以在中断程序中设计一个计数器。设计一个周期为40s的方波,可将定时器设置为100ms,程序计数器设为200,当计数200×100ms=20s时输出取值一次,可形成所要求的波形。 四:实验步骤 本实验的步骤为: (1)连

12、接好实验板,选择相应的CCS运行环境。 (2)新建工程,添加TIME文件及其配制文件,用编译链接工具条对文件进行编译链接,如果编译链接错误提示为“0 Errors”,则把.out文件下载到目标板,然后再单击图6.3中的运行工具运行程序,这时可以看到目标板上和XF引脚的LED在周期性闪烁。 (3)选择菜单View→CPU Registers→CPU Registers命令,可以观察到累加器A在不断加1,如图5.3所示。 图5.3 CPU 寄存器 (4) 参考程序如下; .mmregs

13、 .global mainint ktcr .set 0029h ktcrstop .set 0010h ;TCR 定时器控制寄存器各位含义如下: ;RES SOFT FREE PSC TRB TSS TDDR ;00000 0 0000 1 0 (TSS=1时停止定时) 1001 ;**********************定时器参数定义*************************************** Tim0 .set 24h ;timer

14、0 register Prd0 .set 25h ; timer0 period counter Tcr0 .set 26h ; timer0 control register period .set 99 ;定时器周期 ;***************************************************************************** .sect "vectors" ;**********************中断向量表*****

15、 vector: b mainint nop nop nmi: rete nop nop nop sint17: rete nop nop nop sint18: rete nop nop nop sint19: r

16、ete nop nop nop sint20: rete nop nop nop sint21: rete nop nop nop sint22: rete nop nop nop sint23: rete nop nop n

17、op sint24: rete nop nop nop sint25: rete nop nop nop sint26: rete nop nop nop sint27: rete nop nop nop sint28: rete nop n

18、op nop sint29: rete nop nop nop sint30: rete nop nop nop int0: rete nop nop nop int1: rete nop nop nop int2: rete nop

19、 nop nop b tint0 nop nop brint0: rete nop nop nop bxint0: rete nop nop nop trint: rete nop nop nop txint: rete

20、 nop nop nop int3: rete nop nop nop hpint: rete nop nop nop q26: .word 0ff80h .word 0,0,0 q27: .word 0ff80h .word 0,0,0 q28: .word 0ff80h

21、 .word 0,0,0 q29: .word 0ff80h .word 0,0,0 q30: .word 0ff80h .word 0,0,0 q31: .word 0ff80h .word 0,0,0 ;************************************************************************* .text mainint: stm #203FH,PMST ;从定位中断向量表到2000H

22、处 ssbx intm ;关中断 ssbx sxm ssbx frct ;允许小数乘法 ld #0,dp stm #0008h,imr ;允许定时器0中断 ;************************************************************************** ;允许定时器0中断,IMR 寄存器各位含义如下: ;RES DMAC5 DMAC4

23、 BXINT1 BRINT1 HINT INT3 TINT DMAC0 BXINT0 BRINT0 TINT0 INT2 INT1 INT0 ;00 0 0 0 0 0 0 0 0 0 0 1 0 0 0 ;*************************************************************************** stm #ktcrstop,tcr ;停止定时 stm #peri

24、od,tim ;设定定时器寄存器 stm #period,prd ;设定定时器周期寄存器 stm #ktcr,tcr ;启动定时器 stm #0008h,imr ;允许TIMER0中断 stm #0ffffh,ifr ;清中断 rsbx intm ;开中断 wait: nop ;循环,等中断 b wait ;*********

25、定时器中断程序********************************* ;************************************************************************* tint0: add #1,A ;A寄存器加1操作 stm #20,*ar2 stm #20,*ar1 aa: ssbx xf ;XF引脚置高,LCD亮 rpt #8000 ;重复8001次

26、nop ;等待 rpt #8000 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次

27、nop ;等待 rpt #8000 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 banz aa,*ar1- bb: rsbx xf ;XF引脚置低,LCD灭 rpt #8000 ;重复8

28、001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 rpt #8000

29、 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 banz bb ,*ar2- rete ;中断返回 .end 配置文件如下:

30、time.obj -o time.out -m time.map -e mainint MEMORY { PAGE 0: EPROM :org=2000h,len=1000h PAGE 1: SPRAM :org=0060h,len=100h } SECTIONS { vectors :> EPROM PAGE 0 .text :> EPROM PAGE 0 } 五:实验报告要求: 1. 运行源程序,观察实验结果,看到XF引脚的LED周期性地变化,修改定时器参数,改变LED闪烁周期。 2. 自编汇编程序,要求,每一次进入定时器中断,XF引脚取反一次(提示:设置标志FLAG,当XF=1时,FLAG=1,当XF=0时,FLAG=0)。 3. 深入体会中断矢量空间的可移值性。 4. 汇编程序中:.space.4×16×6的含义是什么,若不用.space. 4×16×6,可用什么语句代替。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服