实验四定时器中断实验

上传人:仙*** 文档编号:154915029 上传时间:2022-09-22 格式:DOC 页数:11 大小:81KB
收藏 版权申诉 举报 下载
实验四定时器中断实验_第1页
第1页 / 共11页
实验四定时器中断实验_第2页
第2页 / 共11页
实验四定时器中断实验_第3页
第3页 / 共11页
资源描述:

《实验四定时器中断实验》由会员分享,可在线阅读,更多相关《实验四定时器中断实验(11页珍藏版)》请在装配图网上搜索。

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

2、所示,其中有一个主计数器(TIM)和一个预定标计数器(PSC)。TIM用于重装载周期寄存器PRD的值,PSC用于重装载周期寄存器TDDR的值。图5.1中有一个 信号,是在器件复位时,DSP向外围电路(包括定时器)发送的一个信号,此信号将在定时器上产生以下效果:寄存器TIM和PRD装载最大值(0FFFFH);TCR的所有位清0;结果是分频值为0,定时器启动,TCR的FREE和SOFT为0。TSSCPU时钟TRBRESET1PRDTIM错位值TDDRPSC错位值11TINTTOUT图5.1定时器的功能方框图定时器实际上是有20bit的周期寄存器。它对CLKOUT信号计数,先将PSC(TCR中的D6

3、D9位)减1,直至PSC为0,然后把TDDR(TCR中的低4位)重新装载入PSC,同时将TIM减1,直到TIM减为0。这时CPU发出TINT中断,同时在TOUT引脚输出一个脉冲信号,脉冲宽度与CLKOUT一致,然后将PRD重新装入TIM,重复TSS下去直到系统或定时器复位。定时器产生中断的计算公式如下:1tc1TDDR+11PRD+1TINT的频率 (其中tc为 CLKOUT的周期)定时器由三个寄存器组成:TIM、PRD、TCR。TIM:定时器寄存器,用于装载周期寄存器值并自减1。PRD:周期寄存器,用于装载定时器寄存器。TCR:定时器控制寄存器,包含定时器的控制状态位。定时器是一个片内减计数

4、器,用于周期地产生CPU中断。定时器被预定标计数器所触发,后者每个CPU时钟周期减1,当计数器减至0时,会产生一个定时器中断,同时在下一周期计数器被定时周期值重新装载。在正常操作模式下,当TIM自减至0时,TIM将被PRD内的数值重装载。在硬件复位或定时器单独复位(TCR中TRB位置1)的情况下,主定时器模块输出的是定时器中断(TINT)信号。该中断被发送至CPU,同时由TOUT引脚输出。TOUT脉冲的宽度等于CLKOUT的时钟宽度。预定标模块由两个类似TIM和PRD的单元构成。它们是预定标计数器(PSC)和定时器分频寄存器(TDDR)。PSC、TDDR是RCR寄存器的字段。在正常操作时PSC

5、自减为0,TDDR值装入PSC,同样在硬件复位或定时器单独复位的情况下,TDDR也被装入PSC。PSC被CPU时钟定时,即每个CPU时钟使PSC自减1。PSC可被TCR读取,但不能直接写入。当TSS置位时,定时器停止工作。若不需要定时器,终止定时操作,可使芯片工作在低功耗模式,并且可以使用与定时器相关的两个寄存器(TIM和PRD)作为通用的存储器单元,可以在任意周期对它们进行读或写操作。TIM的当前值可被读取,PSC也可以通过TCR读取。因为读取这两个存储器需要两个指令,而在两次读取之间因为自减,数值可能改变,因此,PSC两次读的结果可能有差别,不够准确。若要准确测量时序,在读这两个寄存器值之

6、前可先中止定时器,对TSS置1和清0后,可重新开始定时。通过TOUT信号或中断,定时器可以用于产生周边设备的采样时钟,如模拟接口。对于有多个定时器的DSP,由寄存器GPIOCR中的第15位控制使用某一个定时器产生的TOUT信号。2.定时器初始化(1)定时器初始化步骤TCR的TSS位写1,定时器停止工作;装载TRD;初始化TCR中的TDDR,并对TCR中的TSS置0,对TRB置1来重装载定时器周期。(2)初始化定时器中断方法(INTM1)FIR中的TINT写1,以清除挂起的定时器中断;IMR中的TINT置1,启动定时器中断;启动全部中断,INTM置0;在重启(RESET)后,TIM和PRD被设置

7、为最大值(FFFFH),TCR中的TDDR置0。(3)定时控制寄存器(TCR)TCR为一个映射到片内的16位寄存器,它可以控制:定时器的工作方式;设定预定标计数器中的当前数值;启动或停止定时器;重新装载定时器;设置定时器的分频值。TCR的位描述如图5.215121110965430ReservedSOFTFREEPSCTRBTSSTDDR图5.2TCR位描述第1512位Reserved:保留位,总为0。第1110位SOFT、FREE:特殊的仿真位。高级语言调试程序中出现一个断点时,该仿真位决定定时器的状态。如果FREE位设为1,则当遇到一个断点时,定时器继续运行(即自由运行),在这种情况下,S

8、OFT被忽略。但是,如果FREE为0,则SOFT有效。在此情况下,如果SOFT0,则定时器停止,下一次TIM的值递减;如果SOFT1,则当TIM减到0,定时器停止工作。第96位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中的

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

10、x定时器所能计计时的长度可通过公式Tx(TDDR+1)(PRD+1)来计算,其中,TDDR最大值为0FH,PDR最大值为0FFFFH,所以能计时的最长长度为T1048576,由所采用的机器周期T决定,例如f4MHz,T=250,则最长定时时间为:Tmax=2501048576=262.144(ms)例如若需要更长的计时时间,则可以在中断程序中设计一个计数器。设计一个周期为40s的方波,可将定时器设置为100ms,程序计数器设为200,当计数200100ms=20s时输出取值一次,可形成所要求的波形。四:实验步骤本实验的步骤为:(1)连接好实验板,选择相应的CCS运行环境。(2)新建工程,添加T

11、IME文件及其配制文件,用编译链接工具条对文件进行编译链接,如果编译链接错误提示为“0Errors”,则把.out文件下载到目标板,然后再单击图6.3中的运行工具运行程序,这时可以看到目标板上和XF引脚的LED在周期性闪烁。(3)选择菜单ViewCPU RegistersCPU Registers命令,可以观察到累加器A在不断加1,如图5.3所示。 图5.3 CPU 寄存器(4) 参考程序如下; .mmregs .global mainint ktcr .set 0029hktcrstop .set 0010h;TCR 定时器控制寄存器各位含义如下:;RES SOFT FREE PSC TRB

12、 TSS TDDR;00000 0 0000 1 0 (TSS=1时停止定时) 1001;*定时器参数定义*Tim0 .set 24h ;timer0 registerPrd0 .set 25h ; timer0 period counter Tcr0 .set 26h ; timer0 control registerperiod .set 99 ;定时器周期;* .sect vectors;*中断向量表*vector: b mainint nop nop nmi: rete nop nop nopsint17: rete nop nop nopsint18: rete nop nop no

13、psint19: rete nop nop nopsint20: rete nop nop nopsint21: rete nop nop nopsint22: rete nop nop nopsint23: rete nop nop nopsint24: rete nop nop nopsint25: rete nop nop nopsint26: rete nop nop nopsint27: rete nop nop nopsint28: rete nop nop nopsint29: rete nop nop nopsint30: rete nop nop nopint0: rete

14、nop nop nopint1: rete nop nop nopint2: rete nop nop nop b tint0 nop nopbrint0: rete nop nop nopbxint0: rete nop nop noptrint: rete nop nop noptxint: rete nop nop nopint3: rete nop nop nophpint: rete nop nop nopq26: .word 0ff80h .word 0,0,0q27: .word 0ff80h .word 0,0,0 q28: .word 0ff80h .word 0,0,0q2

15、9: .word 0ff80h .word 0,0,0q30: .word 0ff80h .word 0,0,0q31: .word 0ff80h .word 0,0,0;* .textmainint: stm #203FH,PMST ;从定位中断向量表到2000H处 ssbx intm ;关中断 ssbx sxm ssbx frct ;允许小数乘法 ld #0,dp stm #0008h,imr ;允许定时器0中断;*;允许定时器0中断,IMR 寄存器各位含义如下:;RES DMAC5 DMAC4 BXINT1 BRINT1 HINT INT3 TINT DMAC0 BXINT0 BRINT

16、0 TINT0 INT2 INT1 INT0;00 0 0 0 0 0 0 0 0 0 0 1 0 0 0;* stm #ktcrstop,tcr ;停止定时 stm #period,tim ;设定定时器寄存器 stm #period,prd ;设定定时器周期寄存器 stm #ktcr,tcr ;启动定时器 stm #0008h,imr ;允许TIMER0中断 stm #0ffffh,ifr ;清中断 rsbx intm ;开中断wait: nop ;循环,等中断 b wait;*定时器中断程序*;*tint0: add #1,A ;A寄存器加1操作 stm #20,*ar2 stm #20,

17、*ar1aa: ssbx xf ;XF引脚置高,LCD亮 rpt #8000 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 banz aa,*ar1-bb: rsbx xf ;XF

18、引脚置低,LCD灭 rpt #8000 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 rpt #8000 ;重复8001次 nop ;等待 banz bb ,*ar2- rete ;中断返回.end配置文件如下:time.obj-ot

19、ime.out-mtime.map-emainintMEMORYPAGE0:EPROM:org=2000h,len=1000hPAGE1:SPRAM:org=0060h,len=100hSECTIONS vectors:EPROMPAGE0.text:EPROMPAGE0 五:实验报告要求:1. 运行源程序,观察实验结果,看到XF引脚的LED周期性地变化,修改定时器参数,改变LED闪烁周期。2. 自编汇编程序,要求,每一次进入定时器中断,XF引脚取反一次(提示:设置标志FLAG,当XF1时,FLAG1,当XF0时,FLAG0)。3. 深入体会中断矢量空间的可移值性。4. 汇编程序中:.space.4166的含义是什么,若不用.space. 4166,可用什么语句代替。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!