标题:
寻迹小车:用定时器写了PWM波,能循迹,但是不能调速,求大神解答
[打印本页]
作者:
jiangxi
时间:
2018-5-29 21:14
标题:
寻迹小车:用定时器写了PWM波,能循迹,但是不能调速,求大神解答
#include <reg52.h>
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit IN1=P0^0;
sbit IN2=P0^1;
sbit IN3=P0^2;
sbit IN4=P0^3;
sbit L_PWM=P0^4;
sbit R_PWM=P0^5;
sbit hongwai_l1=P2^2;
sbit hongwai_r1=P2^3;
sbit hongwai_l2=P2^4;
sbit hongwai_r2=P2^5;
unsigned char l_tt=0;
unsigned char l_Lpwm=2;
unsigned char l_Rpwm=2;
void delay(int i)
{
uchar t;
for(;i>0;i--)
{
for(t=110;t>0;t--);
}
}
void time0init()
{
TMOD|=0x01;
TH0=0xFF; //定时10us,使通过电机的PWM波的频率为10khz
TL0=0xF6;
ET0=1;
EA=1;
TR0=1;
}
void time()interrupt 1
{
TH0=0xFF;
TL0=0xF6;
l_tt++;
if(l_tt==9)
{
l_tt=0;
}
if(l_tt<l_Lpwm)
{
L_PWM=1;
}
else
{
L_PWM=0;
}
if(l_tt<l_Rpwm)
{
R_PWM=1;
}
else
{
R_PWM=0;
}
}
void main()
{
time0init();
while(1)
{
if(hongwai_l1==0&&hongwai_r1==0)
{
IN1=1;
IN2=0;
IN3=1;
IN4=0;
}
if(hongwai_l1==1&&hongwai_r1==1)
{
IN1=1;
IN2=1;
IN3=1;
IN4=1;
delay(200);
}
if(hongwai_l1==0&&hongwai_r1==1)
{
IN1=1;
IN2=0;
IN3=1;
IN4=1;
}
if(hongwai_l1==1&&hongwai_r1==0)
{
IN1=1;
IN2=1;
IN3=1;
IN4=0;
}
if(hongwai_l1==0&&hongwai_r1==0&&hongwai_l2==1&&hongwai_r2==0)
{
IN1=1;
IN2=0;
IN3=0;
IN4=1;
if(hongwai_l1==1)
break;
}
if(hongwai_l1==0&&hongwai_r1==0&&hongwai_l2==1&&hongwai_r2==0)
{
IN1=0;
IN2=1;
IN3=1;
IN4=0;
if(hongwai_r1==1)
break;
}
}
}
我用电压表测了一下使能端的电压差,只有1.34V,求解
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1