- 1、本文档共70页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《基于HCS12的嵌入式系统设计》 8.6 ECT模块的模数递减计数器功能及寄存器设置(4) RDMCL:读模数递减计数器装载值控制位 1 = 读模数计数寄存器将返回加载寄存器的内容。 0 = 读模数计数寄存器将返回计数寄存器当前的值。 ICLAT:输入捕捉强制锁存动作控制位 当允许输入捕捉锁存模式(ICSYS中的LATQ=BUFEN=1)时,向该位的写1操作,立即强制输入捕捉寄存器TC0~TC3及其相应的8位脉冲累加器的内容锁存到对应的保持寄存器中。当锁存动作发生时,脉冲累加器将自动清除。 向该位写0无效。读该位将总是返回0。 FLMC:把加载寄存器内容强制加载到模数计数器计数寄存器控制位 只有当模数递减计数器允许(MCEN=1)时,该位才有效。 向该位的写1操作,将加载寄存器的内容装填到模数计数器计数寄存器中,并使模数计数器预分频器复位。向该位写0无效。读该位将总是返回0。 MCEN:模数递减计数器允许位 1 = 模数计数器允许。 0 = 模数计数器禁止。 当MCEN=0时,计数器预设为$FFFF。当模数递减计数器启动时,这将防止以前的中断标志引起中断。 《基于HCS12的嵌入式系统设计》 8.6 ECT模块的模数递减计数器功能及寄存器设置(5) MCPR1、MCPR0:模数计数器预分频选择位 这两位规定了模数计数器预分频器的分频因子。 只有当加载寄存器的内容装填到模数计数器计数寄存器时,新选择的预分频因子才有效。 表8.12 MDC预分频选择 2. 模数递减计数器计数寄存器(Modulus Down-Counter Count Register,MCCNT) 完整的访问计数寄存器MCCNT应该在一个时钟周期内完成。分别读/写高位字节和低位字节可能产生与读/写一个字时不同的结果。 如果MCCTL寄存器中的RDMCL=0,读MCCNT寄存器将返回计数寄存器的当前值。如果RDMCL=1,读MCCNT寄存器将返回加载寄存器中的内容。 当向MCCNT寄存器写入$0000时,模数计数器将保持为0,不置位MCFLG寄存器中的MCZF标志。 《基于HCS12的嵌入式系统设计》 8.6 ECT模块的模数递减计数器功能及寄存器设置(6) 如果模数模式允许(MODMC=1),对该地址的写操作,将用已写入的值更新加载寄存器。到下一次计数器向下溢出,计数寄存器才被用新值更新。 如果希望立即加载,可以用MCCTL寄存器中的FLMC位将新值立即加载到计数寄存器中。 如果模数模式被禁止(MODMC=0),对该地址的写操作将清除预分频器,并用写入的值立即更新计数器寄存器,然后开始一次递减计数,减到$0000时停止。 3. 16位模数递减计数器标志寄存器(16-Bit Modulus Down-Counter FLAG Register,MCFLG) MCZF:模数计数器向下溢出标志位 当模数递减计数器递减到$0000时,该标志置位。向该位写1时将清除该标志,写0无效。当寄存器TSCR中的TFFCA=1时,对MCCNT寄存器的任何访问将清除MCZF标志。 POLF3~POLF0:第一次输入捕捉极性状态位 1 = 由上升沿引发第一次输入捕捉。 0 = 由下降沿引发第一次输入捕捉。 《基于HCS12的嵌入式系统设计》 8.7 ECT模块的应用 1、输入信号的频率测量 ▲ 利用输入捕捉功能检测信号两个上升沿(或下降沿)之间的时间间隔,根据周期计算频率。 ▲ 利用脉冲累加器在单位时间内对脉冲计数,用输出比较、模数递减计数器或实时中断来定时。 ▲ 利用端口的中断功能对脉冲进行软件计数,用输出比较、模数递减计数器或实时中断来定时。 2、输入信号的脉宽测量 ▲ 利用输入捕捉功能检测信号上升沿与下降沿之间的时间间隔,计算脉宽。 ▲ 利用脉冲累加器的门控时间累加功能直接测量脉宽。 ▲ 利用端口的中断功能,上升沿中断和下降沿中断分别启动和停止模数递减计数器计数。 3、输入信号的周期测量 ▲ 利用输入捕捉功能检测信号两个上升沿(或下降沿)之间的时间间隔。 ▲ 利用端口的中断功能,两个上升沿(或下降沿)中断分别启动和停止模数递减计数器计数。 ▲ 将输入信号在硬件上进行2分频,利用脉冲累加器的门控时间累加功能直接测量周期。 4、输出波形 ▲ 用输出比较、模数递减计数器或实时中断定时改变端口状态。 三个例子 举三个例子讲述本节内容 流水灯显示 使用输入捕捉功能,对外来脉冲进行计数 使用输出比较功能,输出一个具有一定宽度的高电平脉冲 void TimerOverflow(void) { unsigned char i=1,j=0x80; while((i!=0)(j!=0)) { PORTA=(i|j); i=1; j=1; whil
文档评论(0)