新人关于单片机PWM控制好赢电调的问题
我的电调初始化程序已经完成了,无论输出的波形是什么样子的(只要是低一点的,大概在一毫秒左右),电机会按照程序走完,等待起飞的响声。电机就一直没有动静了。我试过调到一点五秒,还是一直等待起飞。调到两秒之后,就一直进入设置状态。我用的是stc12c5a60s2的单片机。程序
#include <reg51.h>
sbit PWM=P0^3;
sfr AUXR = 0x8E;
void delay1ms100us(void) //误差 0us
{
unsigned char a,b;
for(b=42;b>0;b--)
for(a=77;a>0;a--);
}
void delay19ms100us(void) //误差 -0.000000000001us
{
unsigned char a,b,c;
for(c=213;c>0;c--)
for(b=107;b>0;b--)
for(a=1;a>0;a--);
}
void main(void)
{
AUXR = AUXR|0x40;// T1, 1T Mode
InitTimer1();
while(1)
{
PWM=1;
delay1ms100us();
PWM=0;
delay19ms100us();
}
}
我在复位端,以一定的频率,可以让电机转起来。
控制不好,有时会很快停下来。
希望得到大家的帮助,给的程序。。。。。。谢谢 没看懂,不知道你想要干嘛 {:sweat:}看不太懂,为啥要弄两个延时程序,一个搞不定么?除非两个延时相差很多,要么就是为了要两个很精确的延时时间了, 另外,InitTimer1();这个是啥?定时器么??如果是的话,应该有初始化吧,也不用放到主程序里吧 程序上正不知道你要搞神马!电调也好舵机控制也好,pwm波形 50%的中立位置,脉宽控制转数、舵机转动方向。一点也不复杂啊? 求问?InitTimer1();为何意,求具体啊。
纯属路过!{:lol:} lz搞出来了吗,我也想用PWM调速,就是不能连续调节啊,有解决方法吗 bg8wj 发表于 2012-5-19 13:04 static/image/common/back.gif
程序上正不知道你要搞神马!电调也好舵机控制也好,pwm波形 50%的中立位置,脉宽控制转数、舵机转动方向。 ...
%50的中立位置啥意思。电调不是20ms的周期,1~2ms高电平调节吗,而且我的电机不能以一个任意的脉宽就能转动。怎么办,求教
页:
[1]