- 1、本文档共39页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
增强型定时器ECT模块 MC9S12系列单片机增强型定时器模块是在标准定时器模块的基础上添加了新的功能。 定时器的核心是一个16位的可编程计数器,计数的频率可以通过分频来调整。 用途很多 普通定时器的工作,例如脉冲计数、定时等 可以用来测量输入的脉冲宽度 产生我们需要的脉冲波形。 ECT模块的组成: 1个预分频器 1个16位自由运行计数器 8个16位IC/OC通道 2个16位(4个8位)脉冲累加器 1个16位模数递减计数器 输入捕捉功能是用来监测外部的事件和输入信号。 当外部事件发生或信号发生变化时,在指定的输入捕捉引脚上发生一个指定的沿跳变(可以指定该跳变是上升沿还是下降沿)。定时器捕捉到特定的沿跳变后,把计数寄存器当前的值锁存到通道寄存器。 如果输入捕捉控制寄存器中设定允许输入捕捉中断,系统会产生一次输入捕捉中断,利用中断处理程序可以得到事件发生的时刻或信号发生变化的时刻。 在特定的时刻在管脚上输出特定电平,用来控制外电路工作。 原理是:输出比较寄存器的值和计数器的值每隔4个总线周期比较一次,当两个值相等的时候,会在该通道的引脚上输出预先规定的电平。 如果输出比较中断允许,还会产生一个硬件的定时中断。 输出比较最简单和最常用的功能就是产生一定间隔的脉冲。 输入捕捉/输出比较通道 有8个输入捕捉输出比较通道。共有8个外部引脚,分别为IOC0—IOC7,与PORTT复用。 通过选择TIOS寄存器的IOSx位可以选择是输出比较还是输入捕捉。 对于输入捕捉: 带缓冲的输入捕捉通道 不带缓冲的输入捕捉通道 不带缓冲的输入捕捉通道 8个输入捕捉,其中4个(PT4~PT7)带有一个捕捉寄存器用来记录管脚上电平变化时自由计数器的锁存值。 捕捉寄存器TCx 当输入覆盖控制寄存器(ICOVW)的NOVWx位清0时,每发生一次输入捕捉,新的计数器的值就会覆盖原来的输入捕捉寄存器的内容; 当该位置1时,除非输入捕捉寄存器为空,否则新的值不能写入(使输入捕捉寄存器为空的方法是读取该寄存器)。这样就避免了新的计数值覆盖旧的计数值。 ICOVW复位时为0x00。 带缓冲的输入捕捉通道 PT0~PT3是带缓冲的输入捕捉通道。 捕捉寄存器TCx 保持寄存器TCxH 。 可以在不产生中断的情况下,连续记录两次自由计数器的值。 入口设置了延迟计数器 用来提高抗干扰能力 锁存方式: 每个有效的引脚事件只将自由定时器的值放入捕捉寄存器 TCx,而 TCx 到保持寄存器 TCxH 的传送必须依赖强制锁存命令才能实现 当模数计数器减为“0” 向模数计数器写入“$0000” 写强制锁存位ICLAT(输入控制系统控制寄存器ICSYS) 输入捕捉寄存器的值将锁存到相应通道的保持寄存器中,并将输入捕捉寄存器的值清零。 队列方式 TCx 与 TCxH 形成了一个类似先进先出的队列,每个捕捉结果从 TCx 进入,然 后随着下一个捕捉结果的到来移入 TCxH。 程序可以从 TCxH 取得结果,也可以直接从 TCx 取得捕捉结果。 4 个 8 位的通道 PAC0-PAC3 组成 可以通过级联形成两个 16 位通道 PACA、PACB 通过检测相应管脚上的有效边缘来记录脉冲的个数。 各通道的 8 位累加器与 4 个缓冲 IC 通道相关联的,它们共享边沿检测与延迟电路。 两种工作模式 锁存方式: 通过锁存命令,将脉冲累加计数器的值锁存到相应通道的保持寄存器中 队列方式 当读取某通道保持寄存器的值时,相应脉冲累加器的值将被写入保持寄存器。 16 位递减模数计数器(MDC)可以用作时钟基准,产生周期性的中断请求。 也可用于将 IC 寄存器和脉冲累加器的值锁存到各自的保持寄存器中。 模数递减计数器(MCCNT) 模数递减标志寄存器(MCFLG) 模数递减控制寄存器(MCCTL) 模数计数器由初值递减,递减到0时,会产生相应的中断。 递减频率由总线时钟经分频得到。 初值可以由用户写入 在模数模式允许后(MODMC=1),向模数递减计数器的写操作会更新预置数的值,模数计数器递减到0时,就会装载必威体育精装版的预置数, 装载的操作也可以由置MCCTL寄存器的FLMC位为1来强制执行。 总定时时间=预置数×总线周期×中断次数 在中断程序中,需要清除相应的中断标志位(MCFLG),并将中断次数减1,当中断次数减为0时,一次延时就完成了。 三个例子 举三个例子讲述本节内容 流水灯显示 使用输入捕捉功能,对外来脉冲进行计数 使用输出比较功能,输出一个具有一定宽度的高电平脉冲 ECT计数寄存器( TCNT ) ECT控制寄存器1(TSCR1) ECT控制寄存器二(TSCR2) 流水灯的显示 while(TCNT!=0x0000); while(TCNT==0x0000); 这两句的含义是:TCNT开始计数
文档评论(0)