微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 新手:求教,我写了一个控制舵机的程序,谁能看看有错吗,为什么插上后舵机不能正常运行,

新手:求教,我写了一个控制舵机的程序,谁能看看有错吗,为什么插上后舵机不能正常运行,

时间:10-02 整理:3721RD 点击:

新手:求教,我写了一个控制舵机的程序,谁能看看有错吗,为什么插上后舵机不能正常运行,
舵机程序如下:
#include<reg51.h>
#include<math.h>
#define uchar unsigned char
#define uint unsigned int
uint a,c;
sbit p10=P1^0;
sbit p11=P1^1;
void timer0(void) interrupt 1
{p10=!p10;
p11=!p11;
c=20000-c;
TH0=-(c/256); TL0=-(c%256);
if(c>=500&&c<=2500)c=a;
else c=20000-a;
}
void delay(long j)      
{
for(j;j>0;j--);
}
void main(void)
{
TMOD=0x01; //16位定时器 工作方式1
p10=1;
p11=1;
a=1500;//180//
c=a;
TH0=-(a/256); TL0=-(a%256);
EA=1;
ET0=1;
TR0=1;
for(a=1500;a>=500;a--)
{
a=a-10;
c=a;   
delay(20000);
}
}
如果可以的话,谁能给个正确的舵机控制程序。谢谢了

你看下定时器定时周期是多少,还有高电平持续时间是多长,我用的是stm32驱动的舵机,同定时器1的pwm模式输出周期为25ms  ,高电平持续时间分别为0.5ms ,1ms ,1.5ms, 2ms, 2.5ms分别转-90度,-45度,0度,45度,90度,你连转都不转可能是周期错了,或者高电平持续时间不对,你按我说的,用单片机小精灵自动生成下周期为0.5ms的定时,算法在调调看,我用的是stm32,是可以直接控制输出多大的pwm信号了,51可能要动下脑筋了,手动仿真,呵呵

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top