触须避障程序(改进篇)

/***********************************************************
功能:触须避障程序(改进篇)
说明:左触须接P1_4,右触须接P2_3)
时间:2012.12.14
作者:荆轩道
************************************************************/
#include<BoeBot.h>
#include<uart.h>

int P1_4state(void)//获取P1_4的状态,右胡须
{
 return (P1&0x10)?1:0;
}
int P2_3state(void)//获取P2_3的状态,左胡须
{
 return (P2&0x08)?1:0;
}

void Forward(void)
{
    P1_1=1;
 delay_nus(1700);
    P1_1=0;
 P1_0=1;
 delay_nus(1300);
 P1_0=0;
 delay_nms(20);
}
void Left_Turn(void)
{
    int i;
    for(i=1;i<=26;i++)
 {
  P1_1=1;
  delay_nus(1300);
         P1_1=0;
  P1_0=1;
  delay_nus(1300);
  P1_0=0;
  delay_nms(20);
 }
}
void Right_Turn(void)
{
    int i;
    for(i=1;i<=26;i++)
 {
  P1_1=1;
  delay_nus(1700);
        P1_1=0;
  P1_0=1;
  delay_nus(1700);
  P1_0=0;
  delay_nms(20);
 }
}
void Backward(void)
{
    int i;
    for(i=1;i<=65;i++)
 {
  P1_1=1;
  delay_nus(1300);
         P1_1=0;
  P1_0=1;
  delay_nus(1700);
  P1_0=0;
  delay_nms(20);
 }
}

int main(void)
{
 uart_Init();
 printf("Program Running!\n");
    
 while(1)
 {
  if((P1_4state()==0)&&(P2_3state()==0))
  {
   Backward(); //向后
   Left_Turn();//向左
   Left_Turn();//向左
  }
  else if(P1_4state()==0)
  {
   Backward();//向后
   Left_Turn();//向左
  }
        else if(P2_3state()==0)
  {
   Backward();//向后
   Right_Turn();//向右
  }
  else
   Forward();//向前
 }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值