智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 10989|回复: 34
打印 上一主题 下一主题

再论ECT,详细讨论累加器,个人心得

  [复制链接]

14

主题

929

帖子

1

精华

功勋会员

WJ

Rank: 10Rank: 10Rank: 10

积分
6304

特殊贡献奖章

威望
1456
贡献
4674
兑换币
17
注册时间
2008-4-6
在线时间
87 小时
跳转到指定楼层
1#
发表于 2008-7-2 20:44:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<><BR><FONT size=3>前几天对ECT比较概括地讨论了一下其功能作用,虽然给出了PACB16位测速的原代码,论坛和博客上有不</FONT></P><P><FONT size=3>少朋友对累加器有不少疑问,还有朋友发邮件给我。现在将问题一一说明。</FONT></P><P><FONT size=3>1、脉冲累加器有哪些?是用来干什么的?<BR>&nbsp;&nbsp; 在HCS12DGXXX里,ECT有两个16位脉冲累加器,有4个8位脉冲累加器。这里的多少位,是说明结果寄</FONT></P><P><FONT size=3>存器是多少位的。16位的脉冲累加的结果可以达到65535,8位的可以达到255<BR>&nbsp;&nbsp; 一般是用来测外部脉冲信号个数和频率的。比如测速,速度传感器把速度转化为脉冲,测得脉冲就可</FONT></P><P><FONT size=3>以知道速度了。还有一些传感器,比如测功率的芯片,输出也是脉冲,通过单位时间里测脉冲的个数,便</FONT></P><P><FONT size=3>知道负载的功率了。</FONT></P><P><FONT size=3>2、累加器,输入捕捉,IO口跳变引发的中断三个都可以记脉冲,如何利用?<BR>&nbsp;&nbsp; 首先要明确,中断是除CPU之外的资源,当中断申请了并允许中断之后CPU便放下手上的活先完成中断</FONT></P><P><FONT size=3>里的事情,所以:中断不能太多,PC跳来跳去没有好处;其次,中断在精简,这里有几个原因:大家想一</FONT></P><P><FONT size=3>下,假如,优先级一样的两个中断,间隔很短的时间触发,但前一个中断太长了,迟迟没有RTI跳出来,</FONT></P><P><FONT size=3>那么后一个中断就牺牲了。中断有它的实时性.再就是降低主函数的效率。<BR>&nbsp;&nbsp; 而累加器就是解决了这个问题。它是单独的一个模块,无需进中断(溢出中断稍后再谈),在定时范</FONT></P><P><FONT size=3>围内直接取累加结果,有效地提高了程序的效率。但是累加器有它自身的缺陷,精度不高。一是因为它</FONT></P><P><FONT size=3>自身可能做过些数据的处理,二是16位累加器先取高位和先取低位的结果在高频脉冲情况下可能不是一</FONT></P><P><FONT size=3>样的。<BR>&nbsp;&nbsp; 输入捕捉也可以记脉冲,IC功能比较地强大。通过分频的设置就可设置自由计数器的参考时间,自由</FONT></P><P><FONT size=3>计数器提供时间参考。比如前一个脉冲的下降沿进了中断,此时TCNT为data1,后一个肪冲的下降沿也进</FONT></P><P><FONT size=3>了中断,此时TCNT为data2,那么data2-data1就是二者的间隔时间。但是会有个问题,如果data2比</FONT></P><P><FONT size=3>data1小,即TCNT溢出了一次,怎么办?这个不用但心,无符号数的情况下,14-15=254.对于16位的数</FONT></P><P><FONT size=3>运算一样的道理。呵呵,TCNT溢出一次好解决,多次呢?对了,TOF溢出中断,记录TCNT溢出的次数,再</FONT></P><P><FONT size=3>做运算就行了。但是似乎没有那个必要了,TCNT本来就是16位的,这样一来,data2-data1就不知道是多</FONT></P><P><FONT size=3>少位了。<BR>&nbsp;&nbsp; 至于PortH,PORTJ,这几个I/O端口的中断相当于FS8位MCU里的键盘中断,做脉冲记数理论上也可以,</FONT></P><P><FONT size=3>但是必需要提供参考时间。但是仔细一想,何必呢?用它做其它的事,资源利用分配合理才行。有现成</FONT></P><P><FONT size=3>的脉冲累加器不用,用它干嘛。用PORTH PORTJ口做外部硬件触发中断最好,比如摄像头的行中断,场中</FONT></P><P><FONT size=3>断;检查键盘是否按下等等。</FONT></P><P><FONT size=3>3、脉冲累加器,用8位还是16位?<BR>&nbsp;&nbsp; 这个要看怎么分配单片机的资源了。首先,8位的有4个累加器,16位的只有两个。如何选用PT0-7口</FONT></P><P><FONT size=3>的通道要具体情况具体分析。但有个原则:高频脉冲用16位的,低频的用8位的。8位的比16位的精度要</FONT></P><P><FONT size=3>高,据我个人测试,16位的在1S时间内有2%-3%的误差,8位的比它少。但是16位有它的优势,几乎不用</FONT></P><P><FONT size=3>考虑累加器溢出的情况。</FONT></P><P><FONT size=3>4、如何初始化累加器?<BR>&nbsp;&nbsp; 有以下几点需要配置:1、使能;2、设置上升沿下降沿触发计数;3是否级联;4结果寄存器清0<BR>至于ICSYS里的PACMX位看情况了。 </FONT></P><P><FONT size=3>5、8位累加器溢出的问题。<BR>&nbsp;&nbsp; 8位累加器是有溢出中断的,但只有PAC1和PAC3才有。具体的使用方法是:PACMX 为1,PAOVF为PAC3的</FONT></P><P><FONT size=3>溢出标志位,中断地址是$FFDC, $FFDD,PACTL (PAOVI)必须使能;PACMX = 1, PBOVF为PAC1的溢出标志</FONT></P><P><FONT size=3>位,中断地址是$FFC8, $FFC9,PBCTL (PBOVI)必须使能.<BR>&nbsp;&nbsp; PACMX=0时,默认情况下,上面的溢出中断指的是16位累加器的溢出中断。</FONT></P>

0

主题

37

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
306
威望
254
贡献
44
兑换币
20
注册时间
2007-12-18
在线时间
4 小时
2#
发表于 2008-7-3 05:18:34 | 只看该作者

Re:再论ECT,详细讨论累加器,个人心得

谢谢啊~,受益匪浅啊~<br>
回复 支持 反对

使用道具 举报

0

主题

21

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
威望
197
贡献
22
兑换币
0
注册时间
2008-3-3
在线时间
0 小时
3#
发表于 2008-7-3 06:07:41 | 只看该作者

Re:再论ECT,详细讨论累加器,个人心得

<>楼主真是大好人,,,,,</P>
回复 支持 反对

使用道具 举报

0

主题

31

帖子

0

精华

禁止访问

积分
263
威望
225
贡献
32
兑换币
8
注册时间
2007-12-20
在线时间
3 小时
4#
发表于 2008-7-4 02:54:20 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

0

主题

15

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
320
威望
234
贡献
46
兑换币
10
注册时间
2008-10-19
在线时间
20 小时
5#
发表于 2009-2-16 13:47:42 | 只看该作者
高!
回复 支持 反对

使用道具 举报

0

主题

47

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
293
威望
221
贡献
22
兑换币
0
注册时间
2008-12-6
在线时间
25 小时
6#
发表于 2009-2-16 15:24:56 | 只看该作者
博客上已拜读
回复 支持 反对

使用道具 举报

0

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
207
威望
183
贡献
22
兑换币
0
注册时间
2008-12-31
在线时间
1 小时
7#
发表于 2009-2-16 18:34:00 | 只看该作者
原来如此!
回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
261
威望
189
贡献
22
兑换币
0
注册时间
2009-3-12
在线时间
25 小时
8#
发表于 2009-3-12 10:11:14 | 只看该作者
ect一头雾水,不过看过好多楼主的文章还是有收获的,多谢了!
回复 支持 反对

使用道具 举报

0

主题

185

帖子

0

精华

高级会员

Rank: 4

积分
791
QQ
威望
534
贡献
129
兑换币
72
注册时间
2009-4-4
在线时间
64 小时
9#
发表于 2009-4-6 22:20:58 | 只看该作者
收获颇多!
回复 支持 反对

使用道具 举报

0

主题

45

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
307
QQ
威望
215
贡献
22
兑换币
0
注册时间
2009-2-11
在线时间
35 小时
10#
发表于 2009-4-27 18:51:30 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-25 06:25 , Processed in 0.435188 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表