小R科技-WIFI机器人网·机器人创意工作室

 找回密码
 立即注册
查看: 4156|回复: 0

9g舵机转动角度不对,帮忙看下一段程序

[复制链接]
发表于 2013-5-19 15:02:38 | 显示全部楼层 |阅读模式
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define T 200                           //PWM周期  每次中断为0.1ms  200次中断就20ms
sbit  DJ=P0^0;                           //舵机信号输出引脚
sbit  key=P2^0;
uchar H_PWM=25;                           //PWM高电平为 2.5ms 理论转角为180度
uchar tt=0;                                   //中断计算 变量
void delay(uint z)  //延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms.
{                                        //delay(500);大约延时500ms.
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);       
}
void T0_init()
{
    TMOD = 0x02;         //定时器0 方式2 8自动重装
    TH0 = 0x9c;                 //定时100us 0.1ms
    TL0 = 0x9c;
    EA = 1;
    ET0 = 1;
    TR0 = 1;
}
void main()
{
        T0_init();
        while(1)
        {

        }
}
//   0.5ms--------------0度;                tt==5
//   1.0ms------------45度;                tt==10
//   1.5ms------------90度;                tt==15
//   2.0ms-----------135度;                tt==20
//   2.5ms-----------180度                        tt==25
void timer_T0() interrupt 1
{
        tt++;
        if(tt<=H_PWM)           //H_PWM=25 即高电平时间为 2.5ms
        {
                DJ=1;
        }
        else
        {
                DJ=0;
        }
        if(tt==T)                  //周期 200  即20ms
        {
                tt = 0;
                DJ=1;
        }
}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

新品特惠推荐上一条 /2 下一条

QQ|QQ技术咨询1|QQ技术咨询2|商务合作微信1:xiaorgeek001|商务合作微信2:XiaoRGEEK|诚聘英才|Archiver|手机版|小R科技-WIFI机器人网·机器人创意工作室 ( 粤ICP备15000788号-6 )

GMT+8, 2024-5-14 22:50 , Processed in 1.095771 second(s), 18 queries .

Powered by XiaoR GEEK X3.4

© 2014-2021 XiaoR GEEK

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