我想在uCos-ii操作系统上控制多个步进电机,可能会同时运行速度也不相同,我该怎么控制,哪种控制方式更好,谢谢。
在ARM系统的uCos-ii的系统的时基一般为5ms,而步进电机的时基可能是1~4ms,需要的时基小于5ms,所有不能用系统的延时函数。
1 采用计算周期延时,这样这个线程就会占用CPU,会影响其他其他线程的运行。
2 采用另一个定时器延时,设定一个时基(如:0.8ms),步进电机延时它的整数倍,这样不能实现运行速度的变化。
3 采用另一个定时器延时,控制多个时基不同的步进电机,程序会很复杂,因为每次的中断时间常数可能会不同。哪位有这类demo程序。在非uCos-ii系统的中断中能否Post一个事件?
我改选用哪种方式,或者有更好的方式?谢谢! |