智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 15853|回复: 41
打印 上一主题 下一主题

9s12xs128中的计数器

  [复制链接]

11

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
407
QQ
威望
347
贡献
46
兑换币
0
注册时间
2010-1-15
在线时间
7 小时
跳转到指定楼层
1#
发表于 2010-3-27 22:37:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
哪位高手能传授一下如何使用9s12xs128中的计数器。感觉书上说得有些乱,我只想实现定时计数功能,如何使用ECT模块?

2

主题

70

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3356

论坛元老奖章

QQ
威望
1837
贡献
1507
兑换币
0
注册时间
2010-3-16
在线时间
6 小时
2#
发表于 2010-3-27 23:09:28 | 只看该作者
同样疑惑!
回复 支持 反对

使用道具 举报

0

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
256
威望
201
贡献
49
兑换币
12
注册时间
2010-4-9
在线时间
3 小时
3#
发表于 2010-4-9 21:33:52 | 只看该作者
datasheet
回复 支持 反对

使用道具 举报

15

主题

203

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4489

论坛元老奖章

QQ
威望
484
贡献
3979
兑换币
0
注册时间
2010-2-25
在线时间
13 小时
4#
发表于 2010-4-10 20:24:49 | 只看该作者
回复 支持 反对

使用道具 举报

2

主题

37

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
308
威望
264
贡献
38
兑换币
0
注册时间
2010-1-22
在线时间
3 小时
5#
发表于 2010-4-12 21:05:44 | 只看该作者
xs128没有ECT模块,而是分成了PIT和TIM两个模块。PIT的作用是产生周期中断,与51单片机的定时器功能一样,只是不需像51那样在中断中要重赋定时器初值。计数是在TIM中实现,xs128只有16位一个脉冲累加器PACA(与IOC7脚相连),而dg128还有PACB,比如你用光电编码器测速,编码器传回一系列脉冲,由PACA记录脉冲数,有一个脉冲就记一个数(这与你设定的触发沿有关)。另外,每个引脚都有一个对应的TCx寄存器,当相应引脚触发时,TIM模块中的自由计数器TCNT中的计数值就存到对应的TCx中(读回TCx),再触发一次TCNT再存入TCx(再读回),两次相减就为两次触发的间隔时间。
回复 支持 反对

使用道具 举报

11

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
407
QQ
威望
347
贡献
46
兑换币
0
注册时间
2010-1-15
在线时间
7 小时
6#
 楼主| 发表于 2010-4-13 19:21:01 | 只看该作者
回复 5# l7q3


    那请问 有定时器模块吗?我想在一定时间内产生中断,在中断程序中读取基数器内的值,然后清中断。
回复 支持 反对

使用道具 举报

2

主题

37

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
308
威望
264
贡献
38
兑换币
0
注册时间
2010-1-22
在线时间
3 小时
7#
发表于 2010-4-16 17:15:34 | 只看该作者
你的想法可以,你所说的定时器模块就是PIT,比如要让单片机每50ms产生一次中断,按照Datasheet上的公式计算出你要写入PIT寄存器的值,也就是PITMTLD和PITLD这两个寄存器,对他们赋值后别忘了选通计时通道、开中断等等。发生中断后,在这个PIT中断函数中读PACNT就行,并清除PIT的中断标志。在xs128中,定时器用的是PIT模块,脉冲计数用的是TIM模块内的脉冲计数器PACNT;不像dg128,这两个功能都在同一个ECT模块中完成。在这一点上要跳出按dg128的思路去想xs128误区
回复 支持 反对

使用道具 举报

11

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
407
QQ
威望
347
贡献
46
兑换币
0
注册时间
2010-1-15
在线时间
7 小时
8#
 楼主| 发表于 2010-4-17 00:04:43 | 只看该作者
回复 7# l7q3


    我还是有些疑虑,我看的手册上说只有TIM模块,用的是PT0~PT7口,你说的PIT模块是指什么?我觉得应该还是TIM模块吧,只是使用内部定时中断?
回复 支持 反对

使用道具 举报

2

主题

37

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
308
威望
264
贡献
38
兑换币
0
注册时间
2010-1-22
在线时间
3 小时
9#
发表于 2010-4-17 15:18:22 | 只看该作者
你到飞思卡尔官网下一个XS128手册,完整的大约9.2M,里面第347页就是:Chapter 12  Periodic Interrupt Timer (S12PIT24B4CV1),简称PIT。PIT模块没有外部引脚与之对应,它只起到单片机内部定时中断的功能。比如通过光电编码器(它传回的脉冲信号接在PT7,PACNT与PT7相连)测速时,定时计数初始化时既要配置PIT,又要配置TIM中的PACTL寄存器(此寄存器使能脉冲计数),PIT中断内读PACNT。
可能我对你在一楼提得问题有些误解,你要用定时计数做什么?是测速吗?是不是要在某段固定时间内读回计数值?这个计数值是不是与外部与元件(比如光电编码器)有关?
回复 支持 反对

使用道具 举报

11

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
407
QQ
威望
347
贡献
46
兑换币
0
注册时间
2010-1-15
在线时间
7 小时
10#
 楼主| 发表于 2010-4-17 18:08:02 | 只看该作者
回复 9# l7q3


    谢谢大侠,我是想测速,在某段固定时间内读回计数值,这个计数值与光电编码器有关。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-29 03:21 , Processed in 0.159185 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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