打印

舵机不转

[复制链接]
1134|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
llia|  楼主 | 2018-11-9 10:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
四天时间加老师完善搞出来的程序,晶振12M,周期20ms,占空比j自己设定。利用占空比产生pwm波控制电机转动,用示波器输出的波形是正确的,但是连接舵机是舵机不转
沙发
wangpe| | 2018-11-9 10:43 | 只看该作者
写的程序呢

使用特权

评论回复
板凳
langgq| | 2018-11-9 10:47 | 只看该作者
sbit P10=P1^0;
unsigned char i,t,flag;
float j;//占空比
void delayms(unsigned int a)
{
        unsigned char b;//基准延时时间
  while(a--)
  {
                for(b=0;b<125;b++)
                {;}
}
}
main()
{
        TMOD=0x10;//定时器方式1
        TH1=0xFC;//高八位,定时器1ms
        TL1=0x18;//低八位
        EA=1;//开总中断
        ET1=1;//选择定时器1
        TR1=1;//启动定时器
        P10 =1;
        while(1)//利用占空比产生的pwm波驱动舵机旋转,不同占空比舵机旋转角度不同
        {
                j = 0.025;
                delayms(1000);
                j = 0.05;//定义占空比为0.1,无限死循环
                delayms(1000);
                /*j = 0.075;
                delayms(1000);
                j = 0.10;
                delayms(1000);
                j = 0.125;
                delayms(1000);*/
               
        }
}

void timer1(void) interrupt 3     //定时器1中断符号
{
          TH1=0xFC;//工作在定时器方式1下,每次计数后高低8位必须重新置数
          TL1=0x18;
                t++;
                i++;
                if(i==20*j)//正向导通时间,通过定时器*定时次数实现
                {
                        P10 = 0;//正向导通结束P10口改为下降沿
                }
                if(t == 20)//总周期,通过定时器*定时次数实现
                {
                        P1 = 1;//总周期结束P10口重新改为正脉冲
                        i = 0;//正向导通计数清零
                        t = 0;//总周期计数清零
                }

}

使用特权

评论回复
地板
wangzsa| | 2018-11-9 10:51 | 只看该作者

中断, 判断条件if(i==20*j)  i是字符型,而j是浮点型,逻辑比较的可比性暂时打个问号。还有判断语句中P10 = 0;//接着的判断语句怎么就是P1 = 1;呢。

使用特权

评论回复
5
zhuww| | 2018-11-9 10:55 | 只看该作者
主程序中,使用固定频率的PWM,最好开两个定时器,一个定时器控制频率,一个定时器控制占空比。不要在主循环中使用delay

使用特权

评论回复
6
llia|  楼主 | 2018-11-9 11:00 | 只看该作者
哦,我改一下哈,多谢了

使用特权

评论回复
7
guoyt| | 2018-11-9 11:03 | 只看该作者
最好不要在主程序中使用delay函数。。

使用特权

评论回复
8
hanwe| | 2018-11-9 11:06 | 只看该作者
程序写的挺简单的呀,楼主问题解决了吗

使用特权

评论回复
9
llia|  楼主 | 2018-11-9 11:11 | 只看该作者

结贴了,多谢大家讨论这么多哈,呵呵

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

961

主题

8893

帖子

4

粉丝