红外壁障改善篇

/***********************************************************
功能:红外蔽障改善篇
说明: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);
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值