飞思卡尔MC9S12XS128单片机只有一个脉冲累加器,如果想要对两路脉冲信号进行累加(测速)有什么好方法呢?

方法不错的加悬赏哦!

方法1:使用数字模拟开关,或输入缓冲器,见下图。采样的时候通过两个IO口选择需要采样的编码器,让对应的测速脉冲输入到XS128 PT7口。IO口的切换频率决定了你采样的频率,例如0.5ms切换一次。那么单个编码器的采样速率就是1ms,相当于1KHz的采样的频率,对于电机控制来说应该是足够了。
方法2:采用外部计数器。例如使用级联二进制计数器,两个编码器同时计数,XS128只用通过IO口读入数据即可,并可以实现同时计数,同时清零,只是增加了硬件负担。
常用的外部计数器 CD4520

其实我也在纠结这个问题

因为我把PWM67被我级联控制电机了 就是说PT7这个口被我占用了。。。问学长说 还可以用中断的方法测速
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-02-16
1、你说的脉冲累加器一般称计数器/定时器的话。一个计数器测量两路脉冲信号,原则上是可以的。
2、计数器工作在定时器方式,循环计数,不受任何一路脉冲信号的控制。你可以采用两个外部中断分别响应两路脉冲信号下降沿或上升沿,在每个中断服务程序中,分别读取同一个定时器的参数,连续两次读取参数的差值就是该脉冲的周期。
3、如果精度要求较高,最好的方法是采用计数器的脉冲捕获方式,当然,这样就只能做一路了。追问

额。。这个方法我也考虑过,不过如果采用中断过多怕会影响程序的响应,我想通过输入捕捉的方法试试,还有想问一下,这个单片机的PIT模块中有个16位递减计数器值PITCNT[0..4]这个知道怎么使用吗?

第2个回答  2012-02-15
一路用累加器,另一路可以使用一路输入捕捉通道来做。
第3个回答  2012-02-14
外置另一路累加器,用TTL芯片。
相似回答