这个没试过,可能会有隐患我觉得,一个信号接两个接口,中断来临时这两个中断肯定一起来,当处理时肯定有先后顺序的,如果速度比较慢我觉得还可以,速度快的话个人感觉会影响中断处理
可不用两个定时器
stm32的每个定时器的通道1和通道2内置了正交编码器模块,可以直接使用。
....
TIM_EncoderInterfaceConfig(ENCODER_TIMER, TIM_EncoderMode_TI12, TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);//使用编码器模式3
....
TIM_ICInitStructure.TIM_ICFilter =ICx_FILTER;//选择输入比较滤波器
通过读取TIM1->CNT的值来获取正交编码值了。
只要不发生结构性错误有什么好担心的
将一个编码器信号同时接到两个定时器的做法会不会有什么隐患存在主要在于你处理定时器中断的触发条件,以及中断处理时间。比如,你触发条件一样,只会有一个优先级高的中断会响应。其次,一个中断处理时间会不会影响到另外一个定时中断的处理或计时。如果处理好了两个定时中断的触发条件和优先级设置,问题是可以解决的。另外一个办法可以采用中断嵌套的办法来解决你的问题。
自己虽然没这么做过,但是看过STM32手册,对采集编码器原理也略有了解。同时接到两个定时器上,问题不大,唯一需要注意的是,如果用了中断,那么中断优先级要控制好,中断服务程序也要尽可能精简。
感觉不会存在问题吧,既然有优先级,虽然是一起到达的,两个优先级应该可以处理这种状况。
没这样用过,但是可以尝试,如果能分时复用,可以分时测量;如果两个信号并联,可能会造成信号叠加失真。
个人觉得不会有什么干扰,具体还需试验
一个编码器信号同时接到两个定时器通过中断嵌套可以实现啊!就是你要处理好两个中断的优先级和中断服务程序的执行时间的配合。