5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 2273|回复: 11
打印 上一主题 下一主题

新人关于单片机PWM控制好赢电调的问题 ,大家帮帮我吧!

[复制链接]
跳转到指定楼层
楼主
发表于 2012-5-18 10:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的电调初始化程序已经完成了,无论输出的波形是什么样子的(只要是低一点的,大概在一毫秒左右),电机会按照程序走完,等待起飞的响声。电机就一直没有动静了,等待起飞。我试过调到一点五秒,还是一直等待起飞。调到两秒之后,就一直进入设置状态。我用的是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();
    }
}
我在复位端,以一定的频率,可以让电机转起来。
控制不好,有时会很快停下来。
希望得到大家的帮助,给的程序。。。。。。谢谢

欢迎继续阅读楼主其他信息

沙发
发表于 2012-5-18 10:44 | 只看该作者
单片机产生PWM不是这样发生的   要用定时器   STC12C5A60S2是1T单片机比普通的51要块12倍(同样外部晶振)  这样延时是不行的
3
发表于 2012-5-18 10:58 | 只看该作者
同意楼上意见,要用定时器中断
4
发表于 2012-5-18 11:05 | 只看该作者
都是高手
头像被屏蔽
5
发表于 2012-5-18 11:47 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
6
 楼主| 发表于 2012-5-18 15:38 | 只看该作者
现在是找不到最低油门对应得时刻。一直是处于等待起飞的状态。
头像被屏蔽
7
发表于 2012-5-18 18:01 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽
8
发表于 2012-5-19 15:28 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
9
发表于 2012-5-21 08:45 | 只看该作者
用定时器产生PWM最好
10
发表于 2012-5-21 08:51 | 只看该作者
学习
11
发表于 2012-5-22 11:07 | 只看该作者
还是想想写个PWM信号,作为油门信号?
你这个没有初始化啊。你这样写:

void main(void)
{
    AUXR = AUXR|0x40;  // T1, 1T Mode
    InitTimer1();
           PWM=1;
           delay500US;
           PWM=0;
           delay19.5MS;
wait(10S);
        while(1)
        {
           PWM=1;
           delay1ms100us();
           PWM=0;
           delay19ms100us();
    }
}
12
发表于 2012-5-22 11:08 | 只看该作者
void main(void)
{
    AUXR = AUXR|0x40;  // T1, 1T Mode
    InitTimer1();
for(X=0;X<500;X++)
{
           PWM=1;
           delay500US;
           PWM=0;
           delay19.5MS;
}
        while(1)
        {
           PWM=1;
           delay1ms100us();
           PWM=0;
           delay19ms100us();
    }
}
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /2 下一条

快速回复 返回顶部 返回列表