march_gx 发表于 2012-5-18 10:22:15

新人关于单片机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();
    }
}
我在复位端,以一定的频率,可以让电机转起来。
控制不好,有时会很快停下来。
希望得到大家的帮助,给的程序。。。。。。谢谢

raxb 发表于 2012-5-18 11:04:08

没看懂,不知道你想要干嘛

zjk 发表于 2012-5-18 15:03:40

{:sweat:}看不太懂,为啥要弄两个延时程序,一个搞不定么?除非两个延时相差很多,要么就是为了要两个很精确的延时时间了, 另外,InitTimer1();这个是啥?定时器么??如果是的话,应该有初始化吧,也不用放到主程序里吧

bg8wj 发表于 2012-5-19 13:04:11

程序上正不知道你要搞神马!电调也好舵机控制也好,pwm波形 50%的中立位置,脉宽控制转数、舵机转动方向。一点也不复杂啊?

西周时代hust 发表于 2012-6-3 13:43:13

求问?InitTimer1();为何意,求具体啊。

656034815 发表于 2012-6-3 16:01:28

纯属路过!{:lol:}

残忆视觉 发表于 2013-3-24 17:44:48

lz搞出来了吗,我也想用PWM调速,就是不能连续调节啊,有解决方法吗

残忆视觉 发表于 2013-3-24 17:47:49

bg8wj 发表于 2012-5-19 13:04 static/image/common/back.gif
程序上正不知道你要搞神马!电调也好舵机控制也好,pwm波形 50%的中立位置,脉宽控制转数、舵机转动方向。 ...

%50的中立位置啥意思。电调不是20ms的周期,1~2ms高电平调节吗,而且我的电机不能以一个任意的脉宽就能转动。怎么办,求教
页: [1]
查看完整版本: 新人关于单片机PWM控制好赢电调的问题