载入中。。。
http://blog.eccn.com/u/107300/index.htm
时间记忆
载入中。。。
最新评论
载入中。。。
我的公告
载入中。。。
我的相册
最新留言
载入中。。。
我的好友
载入中。。。
用户登陆
载入中。。。
友情链接
博客信息
载入中。。。



日志
S12增强型定时器 | 2008-6-21 8:46:00

增强型定时器ECT模块是HCS12里相对比较复杂的一个部分.其主要有四个功能:

1、Pulse Accumulator(脉冲累加)

2、Modulus Down-Counter(模数计数器)

3、 Input Capture (输入捕捉)

4、 Output Compare (输出比较)

其结构图如下:

复杂之原因:1功能太多,     2时钟也不好看,         3有时这个用了那个就不能用     4寄存器设置比较复杂,容易混淆。

详细地比较它们也不是一两句话能说完,这里给一个学习的建议:分块学习。

看各个模块之前,最先要弄清楚工作过程。其次弄清楚参考时钟的设定(分频),接着是控制寄存器的设置

比如脉冲累加器这块:首先明确:肯定有功能开启设置(使能);即然是脉冲累加,肯定有沿的触发选择,看是上升沿还是下降沿;要不要级联,怎么控制级联。级联之后的数据处理有什么差异?;再就是必须有一个结果寄存器存结果(如果测的脉冲结果太多了,溢出了怎么办呢?)这都是一系列的问题,理清思路,先看DS,再看别人的程序,会有较大的收获的。

这里,也主要对 脉冲累加器 作点说明。

明确:脉冲累加器计脉冲,计多长时间类的脉冲要定时控制读取。(PACA除外)

级联的情况:

PACB时:当PACTL_PAEN=1时将PAC2与PAC3级联成16位脉冲累加器A ,PT7为输入引脚,结果放在PACN32;用PACB做脉冲累计器的话,非常简单,甚至都不用开启定时器。只需用TCTL4中的EDG0B和EDG0A位设置有效沿,再用PBCTL开启PACB和中断即可。外部脉冲从PT0输入。

PACB时:当PBCTL_PBEN=1时将PAC0与PAC1级联成16位脉冲累加器B,PT0为输入引脚,结果放在PACN10。PACA用起来就比较麻烦一些,因为它的功能更加强大。它必须与定时器合用,而且即可以对外部脉冲计数,也可以根据外部电平宽度对内部总线频率计数。

不级联的情况:比较的简单,一一对应,看DS很容易。

另外:1、建议测速时尽量用脉冲累加器,不要用输入捕捉,频繁地进中断没好处的。

            2、用的时候尽量用非级联或级联累加器PACB,PACA有点麻烦。

例子见上一贴。

阅读全文 | 回复(3) | 引用通告 | 编辑 | By: super
Re:S12增强型定时器 | 2008-6-26 18:23:00
whut_wj呵呵,楼上的朋友,这篇文章讨论的就是较高频脉冲的情况.
确实,低脉冲时有这个缺点.
以下为super的回复:
个人主页 | 引用 | 返回 | 删除 | 回复 | By: whut_wj
Re:S12增强型定时器 | 2008-6-25 19:47:00
访客swn0Qe(游客)能这样直接清零计数器吗?PACN1=0x00
个人主页 | 引用 | 返回 | 删除 | 回复 | By: 访客swn0Qe(游客)
Re:S12增强型定时器 | 2008-6-25 13:34:00
访客1JYl1P(游客)用脉冲累加器还是输入捕捉我觉得应该看具体情况,有的时候就是要求测速的精确性,用脉冲累加的话毕竟有一个求平均值的过程,如果速度较低并且变化较大的话脉冲累加的周期会很长,精确度和实时性都不好,不如输入捕捉高。用输入捕捉可以周期性的开放和关闭输入捕捉中断啊,应该可以解决上述问题。
个人主页 | 引用 | 返回 | 删除 | 回复 | By: 访客1JYl1P(游客)
发表评论:
载入中。。。
Design by blog.nfhot.com / Copyright http://nfhot.com 2006-2008 reserved