智能车制作

标题: 帮忙看一下,我写的舵机程序,舵机是futaba s3010。 [打印本页]

作者: 我的名字是菜鸟    时间: 2013-5-25 21:40
标题: 帮忙看一下,我写的舵机程序,舵机是futaba s3010。
程序不能控制舵机,舵机不会转。求大神帮忙看一下哪里错了。
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int

uint a,b,c;
/*a为舵机1的脉冲宽度,b是角度*/
/*c为中间变量*/
sbit p12=P1^2;

/*以下为定时器中断函数*/

void timer0(void) interrupt 1 using 1
{

p12=0;  
c=2120-c; /*2120代表一个周期的时间*/
TH0=(65536-c)/256; TL0=(65536-c)%256; /*重新定义计数初值*/
}




/*主程序*/
void main(void)
{

TMOD=0x11; /*设初值*/
p12=1;
b=20;  
a=(920+10*b);  /*角度与脉宽函数关系*/
c=a;
TH0=(65536-a)/256; TL0=(65536-a)%256; /*设定定时器初始计数值*/
EA=1;
ET0=1; TR0=1;
}


作者: 穆旦阿斗    时间: 2013-5-26 12:22
在主函数内初始化完后加一个死循环while(1){}  PWM的产生就在这个while和定时器中断里面就行了
作者: 740513326    时间: 2013-12-10 10:16
:)
作者: 张世民    时间: 2014-4-5 16:26
牛皮  哈哈哈哈  看看 学习学习
作者: 逍遥龙III    时间: 2014-4-8 22:33
在主程序里为什么没有死循环???

作者: bzd_111    时间: 2014-11-24 19:31
:D:D
作者: bzd_111    时间: 2014-11-24 19:31
:):):)




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2