΢

#include "stm32f10x.h" // Device header #include "LEDSEG.h" #include "Delay.h" #include "robot.h" #include "Incontrol.h" #include "Irtracking.h" #include "Irobstacle.h" #include "Key.h" #include "Serial.h" unsigned char temp = 1; // ȐۻԌѲҪ־λ void Robot_Traction() //ܺǷɋѭܣؓԌѲ { if(Left_Irtracking_Get() == 0 && Right_Irtracking_Get() == 0) { makerobo_run(70,0); // ǰ޸ } else if(Left_Irtracking_Get() == 1 && Right_Irtracking_Get() == 0) //سӠѹП { makerobo_Left(70,0); //سӠўֽ } else if(Left_Irtracking_Get() == 0 && Right_Irtracking_Get() == 1) // ԒӠѹП { makerobo_Right(70,0); // ԒӠўֽ } else if(Left_Irtracking_Get() == 1 && Right_Irtracking_Get() == 1) // ȫҿѹПìֹͣ { makerobo_brake(0); // ֹͣ } } void Robot_Avoidance() // ۬΢Ҝ֏ؓԌѲ { if(Left_Irobstacle_Get() == 1 && Right_Irobstacle_Get() == 1) { makerobo_run(70,0); // ǰ޸ } else if(Left_Irobstacle_Get() == 1 && Right_Irobstacle_Get() == 0) //ԒӠݬӢս۬΢хۅ { makerobo_Left(70,400); } else if(Left_Irobstacle_Get() == 0 && Right_Irobstacle_Get() == 1) // سӠݬӢս۬΢хۅ { makerobo_Right(70,400); } else if(Left_Irobstacle_Get() == 0 && Right_Irobstacle_Get() == 0) // }ӠԫِǷͬʱݬӢս۬΢хۅ { makerobo_brake(400); // ַԃ֧ܺ۳΋گ˽ makerobo_Spin_Right(70,900); // ַԃ֧ܺԒתگ˽ } } void ControlCar_Ircontrol() // ֨ӥ۬΢ң࠘Ƿ࠘׆ { uint8_t buf[2]; uint8_t data_code=0; if(IR_Receiveflag == 1) //ɧڻ۬΢ޓ˕ս { IR_Receiveflag = 0; //ȥ£ printf("۬΢ޓ˕ë %0.8X\r\n",IR_Receivecode); //ղӡ data_code=IR_Receivecode>>8; IR_Receivecode = 0; //ޓ˕ëȥ£ buf[0] = data_code/16; buf[1] = data_code%16; printf("buf[0]:%d\r\n",buf[0]); printf("buf[1]:%d\r\n",buf[1]); } if(buf[0] == 11 && buf[1] == 1) { makerobo_run(70,2000); // ǰ޸2s } else if(buf[0] == 13 && buf[1] == 4) { makerobo_back(70,2000); // ۳΋2s } else if(buf[0] == 9 && buf[1] == 1) { makerobo_Spin_Left(70,2000); //سת } else if(buf[0] == 14 && buf[1] == 1) { makerobo_Spin_Right(70,2000); // Ԓת } else if(buf[0] == 8 && buf[1] == 1) { makerobo_brake(0); // ֹͣ } else { makerobo_brake(0); // ֹͣ } } void Irscan() { uint8_t Tim=0,Ok=0,Data,Num=0; while(1) { if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8)==1) { Tim=IRremote_Counttime();//ܱփՋՎٟ֧ƽʱݤ if(Tim>=250) break;//һˇԐԃքхۅ if(Tim>=200 && Tim<250) { Ok=1;//˕սǰʼхۅ } else if(Tim>=60 && Tim<90) { Data=1;//˕ս˽ߝ 1 } else if(Tim>=10 && Tim<50) { Data=0;//˕ս˽ߝ 0 } if(Ok==1) { IR_Receivecode<<=1; IR_Receivecode+=Data; if(Num>=32) { IR_Receiveflag=1; break; } } Num++; } ControlCar_Ircontrol(); } EXTI_ClearITPendingBit(EXTI_Line8); } int main(void) { NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //א׏ԅЈؖةؖ2ة Key_Init(); IRremote_Init(); // ۬΢ң࠘ǷԵʼۯ Irtracking_Init(); // ۬΢ѭܣԵʼۯ Irobstacle_Init(); // ۬΢Ҝ֏Եʼۯ LEDSEG_Init(); Serial_Init(); // ԮࠚԵʼۯ robot_Init(); // ܺǷɋԵʼۯ while (1) { if(Key_GetNum() == 1) { temp ++; } if(temp > 3) { temp = 1; } switch(temp) { case 1: Digital_Display(1);Robot_Traction();EXTI_DeInit();break; case 2: Digital_Display(2);Robot_Avoidance();break; case 3: Digital_Display(3);Irscan();break; } } } 这是智能小车练手项目,帮我注释这段代码并说明原理
最新发布
09-28
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值