51单片机定时器如何通过改变定时器装载值来控制步进电机的转速

void timer0() interrupt 1
{

TH0=(65536-num)/256;
TL0=(65536-num)%256;
p27=~p27;

}
我原本是想通过num的加减实现脉宽的大小,不想失败了,请教高手有没有更好 的算法

因为变量赋值进去,占用时间太长,51单片机定时器时效性不佳,执行变量赋值已经消耗很多的时间,实际赋值远远大于数字。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-05-09
改变num从而改变步进电机速度没有问题的,不知你为什么失败?追问

是啊,好奇怪。num值就算前面直接赋值,也不起作用,电机根本就在震动,但是改成数字电机就可以转了

追答

证明num太小,所以频率太高,因此步进电机没有启动起来,你将num变化值大些比如num+=1000之类试试

追问

都跟你说了,把num改成数字80电机就转了

本回答被网友采纳
第2个回答  2014-05-09
怎么失败了呢?