本帖最后由 chenyongand 于 2010-9-8 16:49 编辑
我用单片机控制普通的直流电机,拉动门,就是车库门,电机轴上有霍尔传感器,转一圈,计数变量就加一个数,通过这样控制变量的值来设置行程和上下位置
.. . . .
...
.
.上回我发的帖子的情况有变化,经过这几天的排查,发现并不是因为读取eeprom的问题导致的,新的情况如下:
电机在启动的时候我设计有缓慢启动,我是通过pwm来实现的,COMR=j;我通过逐步增加那个j的值来实现占空比的,j的值越大,输出的pwm电压越高,电机转速越快。
这两天我发现,在程序中如果这样写:
COMR=100;
CNTR=0X9B;
也就是说不要缓慢启动,上电就给个固定的电压,这时候发现,上电后,电机就能马上运行
但如果这样写
COMR=j;
CNTR=0X9B;
那个j的值通过100ms的定时中断设置标志位,然后在主程序里面检测标志位,发现定时中断了,就j=j+10;加到100为止;这样处理的时候,刚上电,电机就不能马上运行,非要等到一二十秒后才开始缓慢启动起来,上电后第一次启动后,就正常了。但每次断电后的第一次电机启动时都是需要等待,不是马上就运行的,不知道咋回事?
难道刚上电后,定时器没有准备好工作?要等那么长时间 |