为什么这个程序能转连续旋转舵机,不能转普通舵机
时间:10-02
整理:3721RD
点击:
在下新人,求各位大佬教
#include<reg52.h>
typedef unsigned int uint;
typedef unsigned char uchar;
sbit pwm=P2^0;//输出PWM信号
uint duo_count;//uint0-65536
uint delaytemp;
sbit light=P2^1;
uchar jiaodu; bit duoji_bit;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void InitTimer(void)
{
TMOD=0x01;//开定时器1
TH0=(65536-100)/256;//定时20MS,20MS为一个周期
TL0=(65536-100)%256;
EA=1;//开总断
TR0=1;//开定时器0
ET0=1;
}
void main(void)//主函数
{
InitTimer() ;
duoji_bit=1;
duo_count=0;
while(1)
{
jiaodu=10;
delay(1000);
}
}
void timer0(void) interrupt 1//定时器0中断函数
{
TH0=(65536-100)/256;
TL0=(65536-100)%256;
if(duoji_bit==1)
{
duo_count++;
if(duo_count>=jiaodu)
pwm=0;
else
pwm=1;
duo_count=duo_count%140;
}
}
如题,这个程序它之前好好的,,现在不能转普通舵机,,我的数字电机也不能转,,,
可是时序周期也没错,,,找了有两天了,没找出问题,求大佬指点
#include<reg52.h>
typedef unsigned int uint;
typedef unsigned char uchar;
sbit pwm=P2^0;//输出PWM信号
uint duo_count;//uint0-65536
uint delaytemp;
sbit light=P2^1;
uchar jiaodu; bit duoji_bit;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void InitTimer(void)
{
TMOD=0x01;//开定时器1
TH0=(65536-100)/256;//定时20MS,20MS为一个周期
TL0=(65536-100)%256;
EA=1;//开总断
TR0=1;//开定时器0
ET0=1;
}
void main(void)//主函数
{
InitTimer() ;
duoji_bit=1;
duo_count=0;
while(1)
{
jiaodu=10;
delay(1000);
}
}
void timer0(void) interrupt 1//定时器0中断函数
{
TH0=(65536-100)/256;
TL0=(65536-100)%256;
if(duoji_bit==1)
{
duo_count++;
if(duo_count>=jiaodu)
pwm=0;
else
pwm=1;
duo_count=duo_count%140;
}
}
如题,这个程序它之前好好的,,现在不能转普通舵机,,我的数字电机也不能转,,,
可是时序周期也没错,,,找了有两天了,没找出问题,求大佬指点
duo_count=duo_count%140;
这句每次进中断都会运行一次,结果不是零吗?