PIT和TIM(很好好)

PIT和TIM(很好好)

哪位高手能传授一下如何使用9s12xs128中的计数器。感觉书上说得有些乱,我只想实现定时计数功能,如何使用ECT模块?

xs128 s 没有ECT模块,而是分成了PIT和TIM两个模块。PIT的作用是产生周期中断,与51单片机的定时器功能一样,只是不需像51那样在中断中要重赋定时器初值。计数是在TIM中实现,xs128只有16位一个脉冲累加器PACA(与IOC7脚相连),而dg128还有PACB,比如你用光电编码器测速,编码器传回一系列脉冲,由PACA记录脉冲数,有一个脉冲就记一个数(这与你设定的触发沿有关)。另外,每个引脚都有一个对应的TCx寄存器,当相应引脚触发时,TIM模块中的自由计数器TCNT中的计数值就存到对应的TCx中(读回TCx),再触发一次TCNT再存入TCx(再读回),两次相减就为两次触发的间隔时间。

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

你的想法可以,你所说的定时器模块就是PIT,比如要让单片机每50ms产生一次中断,按照Datasheet上的公式计算出你要写入PIT寄存器的值,也就是PITMTLD和PITLD这两个寄存器,对他们赋值后别忘了选通计时通道、开中断等等。发生中断后,在这个PIT中断函数中读PACNT就行,并清除PIT的中断标志。在xs128中,定时器用的是PIT模块,脉冲计数用的是TIM模块内的脉冲计数器PACNT;不像dg128,这两个功能都在同一个ECT模块中完成。在这一点上要跳出按dg128的思路去想xs128误区

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

你到飞思卡尔官网下一个XS128手册,完整的大约9.2M,里面第347页就是:Chapter 12 Periodic Interrupt Timer (S12PIT24B4CV1),简称PIT。PIT模块没有外部引脚与之对应,它只起到单片机内部定时中断的功能。比如通过光电编码器(它传回的脉冲信号接在PT7,PACNT与PT7相连)测速时,定时计数初始化时既要配置PIT,又要配置TIM中的PACTL寄存器(此寄存器使能脉冲计数),PIT中断内读PACNT。

可能我对你在一楼提得问题有些误解,你要用定时计数做什么?是测速吗?是不是要在某段固定时间内读回计数值?这个计数值是不是与外部与元件(比如光电编码器)有关?

相关主题
相关文档
最新文档