|
- #include "sys.h"
- #include "delay.h"
- #include "usart.h"
- #include "timer.h"
- #include "led.h"
- #include "oled.h"
- #include "fdc2214.h"
- #include "McuDataSend.h"
- #include "gesture.h"
- float res0,res1,res2,res3;
- float temp0,temp1,temp2,temp3;
- //float learn_position1,learn_position2,learn_position3;
- float learn_data1,learn_data2,learn_data3,learn_data4,learn_data5;
- float a,aa; //中間變量
- unsigned char pp[3]={1,2,3};
- unsigned char bb[3]={1,2,3}; //bt
- //unsigned char dd[5]={1,2,3,4,5};
- float learn_position[3];
- float learn_position_B[3]; //bt
- u8 ac_a=0;
- u8 ac_b=0;
- //float learn_data[5];
- u8 i,j; //循環(huán)
- u8 flag_a=0;
- u8 flag_b=0;
- u8 save=0;
- u8 on=0;
- u8 mode=0;
- u8 cmd=0;
- u8 position=0;
- u8 position_b=0;
- u8 data=0;
- void A();
- void B();
- void show_mode0();
- void show_mode1();
- void show_mode2();
- void show_mode3();
- void show_use();
- void show_free();
- void key_test();
- void slect_mode();
- //void lcd_show_test2();
- int main(void)
- {
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置中斷優(yōu)先級(jí)分組為組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
- delay_init(); //延時(shí)函數(shù)初始化
- uart_init(9600); //串口初始化為115200
- LED_Init();
- show_mode0();
- show_free();
- while(FDC2214_Init());
- // led=0;
- delay_ms(100);
- temp0 = Cap_Calculate(0);//讀取初始值
- temp1 = Cap_Calculate(1);
- temp2 = Cap_Calculate(2);
- temp3 = Cap_Calculate(3);
- TIM5_Ctrl_Init(2000-1,720-1);
-
- while(1)
- {
- delay_ms(200);
- lcd_show_test2();
- lcd_show_test3();
- slect_mode();
-
- key_test();
- }
- }
- void key_test()
- {
- if(cmd!=0)
- {
- // lcd_show_test();
- switch(cmd)
- {
- case 1: mode=0;show_mode0();cmd=0;break;
- case 2: mode=1;show_mode1();cmd=0;break;
- case 3: mode=2;show_mode2();cmd=0;break;
- case 4: mode=3;show_mode3();cmd=0;break;
- case 5: on=1;show_use();A();cmd=0; break;
- case 6: on=0;cmd=0;show_free(); break;
- case 7: position=1;cmd=0; break;
- case 8: position=2;cmd=0; break;
- case 9: position=3;cmd=0; break;
- case 10: data=1;cmd=0; break;
- case 11: data=2;cmd=0; break;
- case 12: data=3;cmd=0; break;
- case 13: data=4;cmd=0; break;
- case 14: data=5;cmd=0; break;
- case 15: mode=4;A();B();cmd=0; break;
- case 16: position_b=1;learn_position_B[0]=res1-temp1;cmd=0; break;
- case 17: position_b=2;learn_position_B[1]=res1-temp1;cmd=0; break;
- case 18: position_b=3;learn_position_B[2]=res1-temp1;B();cmd=0; break;
-
- default: cmd=0; break;
- }
- }
- }
- void A()
- {
- for(i=0;i<3;i++)
- {
- for(j=0;j<2;j++)
- {
- if(learn_position[j]>learn_position[j+1])
- {
- a=learn_position[j];learn_position[j]=learn_position[j+1];learn_position[j+1]=a;
- aa=pp[j];pp[j]=pp[j+1];pp[j+1]=aa;
- }
- }
- }
- }
- void B()
- {
- for(i=0;i<3;i++)
- {
- for(j=0;j<2;j++)
- {
- if(learn_position_B[j]>learn_position_B[j+1])
- {
- a=learn_position_B[j];learn_position_B[j]=learn_position_B[j+1];learn_position_B[j+1]=a;
- aa=bb[j];bb[j]=bb[j+1];bb[j+1]=aa;
- }
- }
- }
- }
- void show_mode0()
- {
- printf("t7.txt=\"");
- printf("-");
- printf("\"\"");
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
-
- printf("t8.txt=\"");
- printf(" ");
- printf("\"\"");
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
-
- printf("t9.txt=\"");
- printf(" ");
- printf("\"\"");
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
-
- printf("t10.txt=\"");
- printf(" ");
- printf("\"\"");
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
-
- }
- void show_mode1()
- {
- printf("t7.txt=\"");
- printf(" ");
- printf("\"\"");
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
-
- printf("t8.txt=\"");
- printf("-");
- printf("\"\"");
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
-
- printf("t9.txt=\"");
- printf(" ");
- printf("\"\"");
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
-
- printf("t10.txt=\"");
- printf(" ");
- printf("\"\"");
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
-
- }
- void show_mode2()
- {
- printf("t7.txt=\"");
- printf(" ");
- printf("\"\"");
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
-
- printf("t8.txt=\"");
- printf(" ");
- printf("\"\"");
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
-
- printf("t9.txt=\"");
- printf("-");
- printf("\"\"");
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
-
- printf("t10.txt=\"");
- printf(" ");
- printf("\"\"");
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
-
- }
- void show_mode3()
- {
- printf("t7.txt=\"");
- printf(" ");
- printf("\"\"");
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
-
- printf("t8.txt=\"");
- printf(" ");
- printf("\"\"");
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
-
- printf("t9.txt=\"");
- printf(" ");
- printf("\"\"");
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
-
- printf("t10.txt=\"");
- printf("-");
- printf("\"\"");
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
-
- }
- void show_use()
- {
- printf("t12.txt=\"");
- printf("-");
- printf("\"\"");
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
-
- printf("t13.txt=\"");
- printf(" ");
- printf("\"\"");
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- }
- void show_free()
- {
- printf("t12.txt=\"");
- printf(" ");
- printf("\"\"");
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
-
- printf("t13.txt=\"");
- printf("-");
- printf("\"\"");
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- USART_SendData(USART1,0xff);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
- }
- void slect_mode()
- {
- if(mode==0)
- {
- if(on==0)
- {
- if((res0-temp0)>1&&(res0-temp0)<6.5)
- {
- lcd_show_txt(1);
- }
- else if((res0-temp0)>6.5&&(res0-temp0)<9)
- {
- lcd_show_txt(2);
- }
- else if((res0-temp0)>9)
- {
- lcd_show_txt(3);
- }
- else
- {
- lcd_show_txt(0);
- }
- }
- else
- {
-
-
- if((res0-temp0)>(learn_position[0]-1)&&(res0-temp0)<=(learn_position[0]+learn_position[1])/2)
- {
- lcd_show_txt(pp[0]);
- }
- else if((res0-temp0)>((learn_position[0]+learn_position[1])/2)&&(res0-temp0)<=((learn_position[1]+learn_position[2])/2))
- {
- lcd_show_txt(pp[1]);
- }
- else if((res0-temp0)>((learn_position[1]+learn_position[2])/2))
- {
- lcd_show_txt(pp[2]);
- }
- else
- {
- lcd_show_txt(0);
- }
- }
- }
- else if(mode==1)
- {
- if(on==0)
- {
- if((res0-temp0)>1&&(res0-temp0)<3.5)
- {
- lcd_show_num(1);
- }
- else if((res0-temp0)>3.5&&(res0-temp0)<5.5)
- {
- lcd_show_num(2);
- }
- else if((res0-temp0)>5.5&&(res0-temp0)<7)
- {
- lcd_show_num(3);
- }
- else if((res0-temp0)>7&&(res0-temp0)<8.5)
- {
- lcd_show_num(4);
- }
- else if((res0-temp0)>8.5)
- {
- lcd_show_num(5);
- }
- else
- {
- lcd_show_num(0);
- }
- }
- else
- {
-
-
- if((res0-temp0)>(learn_data1-1)&&(res0-temp0)<=(learn_data1+learn_data2)/2)
- {
- lcd_show_num(1);
- }
- else if((res0-temp0)>(learn_data1+learn_data2)/2&&(res0-temp0)<=(learn_data2+learn_data3)/2)
- {
- lcd_show_num(2);
- }
- else if((res0-temp0)>(learn_data2+learn_data3)/2&&(res0-temp0)<=(learn_data3+learn_data4)/2)
- {
- lcd_show_num(3);
- }
- else if((res0-temp0)>(learn_data3+learn_data4)/2&&(res0-temp0)<=(learn_data4+learn_data5)/2)
- {
- lcd_show_num(4);
- }
- else if((res0-temp0)>(learn_data4+learn_data5)/2)
- {
- lcd_show_num(5);
- }
- else
- {
- lcd_show_num(0);
- }
- }
- }
- else if(mode==2)
- {
- if(position==1)
- {
- learn_position[0]=res0-temp0;
- position=0;
- }
- else if(position==2)
- {
- learn_position[1]=res0-temp0;
- position=0;
- }
- else if(position==3)
- {
- learn_position[2]=res0-temp0;
- position=0;
- }
- else
- {
- position=0;
- }
- }
- else if(mode==3)
- {
- if(data==1)
- {
- learn_data1=res0-temp0;
- data=0;
- }
- else if(data==2)
- {
- learn_data2=res0-temp0;
- data=0;
- }
- else if(data==3)
- {
- learn_data3=res0-temp0;
- data=0;
- }
- else if(data==4)
- {
- learn_data4=res0-temp0;
- data=0;
- }
- else if(data==5)
- {
- learn_data5=res0-temp0;
- data=0;
- }
- else
- {
- data=0;
- }
- }
- else
- {
- if((res0-temp0)>(learn_position[0]-(learn_position[1]-learn_position[0])/2)&&(res0-temp0)<=(learn_position[0]+learn_position[1])/2)
- {
- lcd_show_txt_ba(pp[0]);flag_a=1;
- ac_a=pp[0];
- }
- else if((res0-temp0)>((learn_position[0]+learn_position[1])/2)&&(res0-temp0)<=((learn_position[1]+learn_position[2])/2))
- {
- lcd_show_txt_ba(pp[1]);flag_a=1;
- ac_a=pp[1];
- }
- else if((res0-temp0)>((learn_position[1]+learn_position[2])/2))
- {
- lcd_show_txt_ba(pp[2]);flag_a=1;
- ac_a=pp[2];
- }
- else
- {
- lcd_show_txt_ba(0);flag_a=0;
- ac_a=0;
- }
-
-
- if((res1-temp1)>(learn_position_B[0]-(learn_position_B[1]-learn_position_B[0])/2)&&(res1-temp1)<=(learn_position_B[0]+learn_position_B[1])/2)
- {
- lcd_show_txt_bb(bb[0]);flag_b=1;
- ac_b=bb[0];
- }
- else if((res1-temp1)>((learn_position_B[0]+learn_position_B[1])/2)&&(res1-temp1)<=((learn_position_B[1]+learn_position_B[2])/2))
- {
- lcd_show_txt_bb(bb[1]);flag_b=1;
- ac_b=bb[1];
- }
- else if((res1-temp1)>((learn_position_B[1]+learn_position_B[2])/2))
- {
- lcd_show_txt_bb(bb[2]);flag_b=1;
- ac_b=bb[2];
- }
- else
- {
- lcd_show_txt_bb(0);flag_b=0;
- ac_b=0;
- }
-
- if(ac_a==0||ac_b==0)
- {
- lcd_show_win(0);
- }
- else
- {
- if((ac_a==1&&ac_b==2)||(ac_a==2&&ac_b==3)||(ac_a==3&&ac_b==1))
- {
- lcd_show_win(1);
- }
- else if((ac_a==1&&ac_b==3)||(ac_a==2&&ac_b==1)||(ac_a==3&&ac_b==2))
- {
- lcd_show_win(2);
- }
- else
- {
- lcd_show_win(3);
- }
- }
-
-
- }
- }
- void TIM5_IRQHandler(void) //TIM5中斷
- {
- if(TIM5->SR&0X0001)//20ms定時(shí)中斷
- {
- res0 = Cap_Calculate(0);//采集數(shù)據(jù)
- res1 = Cap_Calculate(1);
- res2 = Cap_Calculate(2);
- res3 = Cap_Calculate(3);
- // Data_Send_Status(res,0,0);
- // printf("%5d : %5d : %5d\r\n",res0,res1,res2);
- // led=~led;
- }
- TIM5->SR&=~(1<<0); //中斷標(biāo)志位清0,等待下一次中斷
- }
復(fù)制代碼
全部資料51hei下載地址:
D題(1,2,3,4版)+battle完成 -.7z
(226.86 KB, 下載次數(shù): 35)
2019-8-13 03:49 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|