是否会导致执行缓慢取决于这个机器人的芯片是如何获取Encoder测量信号的。
Encoder测量输入有三种方法,一种是纯硬件。一些用于电机控制的芯片内部自带Encoder解码电路。这种情况下,接入Encoder也不过就是读一个寄存器的问题。解码是一个硬件过程,所以不影响速度。
但是很多通用芯片没有Encoder解码芯片。这就需要动用中断来进行解码,这就是半硬件解码了。对一个Encoder进行解码,一般也就是2个端口,2个中断(如果需要Index就需要另加一个端口和中断)。这的确会导致程序执行变慢,因为中断处理程序和解码都需要花时间。具体的时间花销是根据中断出现的频率而决定的。具体会影响多少,有两种方法可以确定。第一种就是自己去实际做出来然后测试。第二种是根据转速计算每秒钟最多的中断次数,然后根据中断服务程序的指令数量来推算每秒钟所需的时钟开销。
纯软件解码就比较困难了,就是不停地监视数字输入口,然后解码。除非是实在没办法,否则不会有人用这种方法。
如果要用到Encoder,还是推荐使用带有硬件解码电路的芯片。如果实在不行,必须用半硬件解码,那就要注意,保证每秒钟中断解码的开销不能太大。这就对Encoder和机械设计有一定要求了。