新人关于单片机PWM控制好赢电调的问题

2020-01-30 14:00发布

         我的电调初始化程序已经完成了,无论输出的波形是什么样子的(只要是低一点的,大概在一毫秒左右),电机会按照程序走完,等待起飞的响声。电机就一直没有动静了。我试过调到一点五秒,还是一直等待起飞。调到两秒之后,就一直进入设置状态。我用的是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();
    }
}
我在复位端,以一定的频率,可以让电机转起来。
控制不好,有时会很快停下来。
希望得到大家的帮助,给的程序。。。。。。谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
raxb
1楼-- · 2020-01-30 14:50
没看懂,不知道你想要干嘛
zjk
2楼-- · 2020-01-30 16:51
看不太懂,为啥要弄两个延时程序,一个搞不定么?除非两个延时相差很多,要么就是为了要两个很精确的延时时间了, 另外,InitTimer1();这个是啥?定时器么??如果是的话,应该有初始化吧,也不用放到主程序里吧
bg8wj
3楼-- · 2020-01-30 18:38
 精彩回答 2  元偷偷看……
西周时代hust
4楼-- · 2020-01-30 19:10
求问?InitTimer1();为何意,求具体啊。
656034815
5楼-- · 2020-01-30 20:38
纯属路过!
残忆视觉
6楼-- · 2020-01-30 22:20
lz搞出来了吗,我也想用PWM调速,就是不能连续调节啊,有解决方法吗

一周热门 更多>