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
怎么失败了呢?