本帖最后由 ADWUDI 于 2017-7-2 20:09 编辑
这是安徽省2016年的 电子竞赛题目,时间紧就只完成了基本部分。时间保证在40秒左右,有视频但不知道怎样上传。。。只好截个屏看看【无奈】。这是部分代码,想要源码的同学可以私我
- #include"xunji.h"
- #include"pwm.h"
- #include"servo.h"
- #include"motor.h"
- #include"delay.h"
- #include"lcd.h"
- #include"sys.h"
- #define M 1150
- #define Y 1050
- #define Z 800
- extern u8 tiM5CH1_CAPTURE_STA; //ÊäÈ벶»ñ״̬
- extern u16 TIM5CH1_CAPTURE_VAL; //ÊäÈ벶»ñÖµ
- void juli()
- {
- if(TIM5CH1_CAPTURE_STA&0X80) //³É¹¦²¶»ñµ½ÁËÒ»´Î¸ßµçƽ
- {
- distance=TIM5CH1_CAPTURE_STA&0X3F;
- distance*=0XFFFFFFFF; //Òç³öʱ¼ä×ܺÍ
- distance+=TIM5CH1_CAPTURE_VAL; //µÃµ½×ܵĸߵçƽʱ¼ä
- TIM5CH1_CAPTURE_STA=0; //¿ªÆôÏÂÒ»´Î²¶»ñ
- }
- distance =(distance*340/200)/100; //²âÁ¿¾àÀ뵥λcm
- // LCD_ShowNum(30+40,230,distance,3,24); //ÏÔʾ¾àÀë
-
- }
- void XunJi_Init()
- {
- GPIO_InitTypeDef GPIO_InitStructure;
-
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //ʹÄÜPB,PE¶Ë¿ÚʱÖÓ
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4; //LED0-->PB.5 ¶Ë¿ÚÅäÖÃ
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //ÍÆÍìÊä³ö
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO¿ÚËÙ¶ÈΪ50MHz
- GPIO_Init(GPIOC, &GPIO_InitStructure); //¸ù¾ÝÉ趨²ÎÊý³õʼ»¯GPIOB.5
- }
- void XunJi()
- {
- if(flag_2==0)
- {
- if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_2)==1) //????????,???????
- {
- //
- // LCD_ShowNum(30,150,flag_2,3,24); //??
- // LCD_Clear(WHITE);
- Motor_Speed_Control(0,480+800+200); //?????
-
- }
-
- if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_3)==1 ) //????????,???????
- {
- //
- // LCD_ShowNum(30,180,flag_2,3,24); //??
- // LCD_Clear(WHITE);
- Motor_Speed_Control(380+800+200,0); //?????
-
- }
- if((GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_2)&&GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_3))==1)
- {
- // LCD_ShowNum(30,180,flag_2,3,24);
- // LCD_Clear(WHITE);
- Motor_Speed_Control(380+800,480+400);
- }
-
- if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_1)==1) //¼Æʱ¿ªÊ¼
- {
- flag_1=1;
- }
- if((distance<=7)&&(distance>3)&&(time<34))
- {
- Motor_Speed_Control(380+800,480+400);
- delay_ms(100);
- delay_ms(180);
- if((distance<=7)&&(distance>3))
- {
- Motor_Speed_Control(0,0);
- MOTO_Mode1(180);
- delay_ms(500);
- MOTO_Mode0(180);
- }
- }
-
-
-
-
- if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_4)==1)
- {
- //
- // LCD_ShowNum(30,260,flag_2,3,24); //??
- Motor_Speed_Control(380+800,0);
- delay_ms(1000);
- delay_ms(850);
- Motor_Speed_Control(0,0);
- SetServoAngle(25);
- flag_1=0;
- flag_2=1;
- }
-
-
- }
- }
复制代码
0
评分
-
查看全部评分
|
|
|
|