标题:
关于蓝牙控制小车差速法转弯的问题
[打印本页]
作者:
datou125
时间:
2016-8-10 21:00
标题:
关于蓝牙控制小车差速法转弯的问题
感觉串口中断和定时器中断冲突了啊。调了好长时间。led灯的亮度都是有差别的。但是转弯的还是一个轮子转,一个轮子停。
作者:
datou125
时间:
2016-8-10 21:01
#include<reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit IN1=P1^1; //电机接口
sbit IN2=P1^2;
sbit IN3=P1^3;
sbit IN4=P1^4;
sbit ENA=P1^5;
sbit ENB=P1^6;
uchar chuankou[4]={0}; //串口接收到的值;
uchar i=0,j=0,lpwm=35,rpwm=35; //占空比标志
void go() //前进函数
{
rpwm=35;
lpwm=35;
IN1=0;
IN2=1;
IN3=0;
IN4=1;
}
void back() //后退函数
{
rpwm=35;
lpwm=35;
IN1=1;
IN2=0;
IN3=1;
IN4=0;
}
void left() //左转函数
{
lpwm=35; //调整左轮占空比 使右轮转速比左轮快 左转
rpwm=38; //调整右轮占空比
IN1=1;
IN2=1;
IN3=0;
IN4=1;
}
void right() //右转函数
{
lpwm=38; //调整左右轮占空比使左轮转速比右轮快 右转
rpwm=35;
IN1=0;
IN2=1;
IN3=1;
IN4=1;
}
void stop() //停车
{
rpwm=0;
lpwm=0;
IN1=1;
IN2=1;
IN3=1;
IN4=1;
}
void init()
{
TMOD=0x21; //设定定时器为方式2 可自动再装入的定时器
SM0=0; //设定串口工作方式1 10位异步收发器 8位数据
SM1=1; //设定串口工作方式1 10位异步收发器 8位数据
TH1=0xfd;//装入初值
TL1=0xfd; //装入初值
PCON=0x00; //设定串行口波特率
REN=1; //允许串行接收位。REN=1,启动接收数据;REN=0,禁止接收。
IP=0x10;
TH0=(65535-100)/256;
TL0=(65535-100)%256;
TR0=1; //启用T0定时器/计数器
ET0=1; //T0定时器中断开关;(开)
TR1=1; //启用T1定时器/计数器
ET1=1; //T1定时器中断开关;(开)
ES=1; //串行中断开关;(开)
EA=1; //总中断开关;(开)
ENA=1;
ENB=1;
}
void main()
{
init();
while(1)
{
switch(chuankou[0])
{
case 1:go();break;
case 2:back();break;
case 3:left();break;
case 4:right();break;
case 0:stop();break;
default:break;
}
}
}
//串口中断
void serial() interrupt 4
{
EA=0;
if(RI==1)
{
if(SBUF==0x02)
{
chuankou[0]=1;
}
if(SBUF==0x04)
{
chuankou[0]=2;
}
if(SBUF==0x06)
{
chuankou[0]=3;
}
if(SBUF==0x08)
{
chuankou[0]=4;
}
if(SBUF==0x10)
{
chuankou[0]=0;
}
RI=0;
}
EA=1;
}
void timer0() interrupt 1
{
i++;
j++;
if(i<=rpwm)
{
ENA=1;
}
else
ENA=0;
if(i==40)
{
ENA=~ENA;
i=0;
}
if(j<=lpwm)
{
ENB=1;
}
else
ENB=0;
if(j==40)
{
ENB=~ENB;
j=0;
}
TH0=(65536-100)/256;
TL0=(65536-100)%256;
}
复制代码
作者:
datou125
时间:
2016-8-13 21:28
求帮忙啊 。。
作者:
wc86110
时间:
2016-8-14 01:37
LZ,看来还是没明白啥叫差速法转弯,用履带式驱动的车辆都用这种方式来实现转弯
像你说的那情况可原地转弯
和舵机控制的有区别
作者:
1234567wq
时间:
2016-8-14 15:54
母鸡啊。。。。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1