/***********************************************************
功能:红外蔽障改善篇
说明:P1_0接左电机,P1_1接右电机
#define LeftIR P1_2 //左边红外接收连接到P1_2
#define RightIR P3_5 //右边红外接收连接到P3_5
#define LeftLaunch P1_3 //左边红外发射连接到P1_3
#define RightLaunch P3_6 //右边红外发射连接到P3_6
时间:2012.12.15
作者:荆轩道
************************************************************/
#include<BoeBot.h>
#include<uart.h>
#include<intrins.h>
#define LeftIR P1_2 //左边红外接收连接到P1_2
#define RightIR P3_5 //右边红外接收连接到P3_5
#define LeftLaunch P1_3 //左边红外发射连接到P1_3
#define RightLaunch P3_6 //右边红外发射连接到P3_6
void IRLaunch(unsigned char IR)
{
int counter;
if(IR=='L')//左边发射
for(counter=0;counter<38;counter++)
{
LeftLaunch=1;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
LeftLaunch=0;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
}
if(IR=='R')//右边发射
for(counter=0;counter<38;counter++)
{
RightLaunch=1;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
RightLaunch=0;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
}
}
int main(void)
{
int pulseLeft,pulseRight;
int irDetectLeft,irDetectRight;
uart_Init();
printf("Program Running!\n");
do
{
IRLaunch('R'); //右边发射
irDetectRight = RightIR;//右边接收
IRLaunch('L'); //左边发射
irDetectLeft = LeftIR;//左边接收
if((irDetectLeft==0)&&(irDetectRight==0))//向后退
{
pulseLeft=1300;
pulseRight=1700;
}
else if((irDetectLeft==0)&&(irDetectRight==1))//右转
{
pulseLeft=1700;
pulseRight=1700;
}
else if((irDetectLeft==1)&&(irDetectRight==0))//左转
{
pulseLeft=1300;
pulseRight=1300;
}
else //前进
{
pulseLeft=1700;
pulseRight=1300;
}
P1_1=1;
delay_nus(pulseLeft);
P1_1=0;
P1_0=1;
delay_nus(pulseRight);
P1_0=0;
delay_nms(20);
}
while(1);
}