|
QQ截圖20170528151857.jpg (50.82 KB, 下載次數: 147)
下載附件
2017-5-28 15:19 上傳
QQ截圖20170528151923.jpg (97.9 KB, 下載次數: 158)
下載附件
2017-5-28 15:19 上傳
- *sss
- * @file main.c
- * @brief 山外K60 平臺主程序
- * @author 山外科技
- * @version v5.0
- * @date 2013-08-28
- */
- #include "common.h"
- #include "include.h"
- /*************定時器*******************/
- void PIT0_IRQHandler();
- void PIT1_IRQHandler();
- void PIT2_IRQHandler();
- /*********搜線函數***********************/
- void Analysis_Line_1(uint8 *pixel_1);
- void maxvar(uint8 *buf,uint16 len,uint8 maxval);
- void Analysis_Line_0(uint8 *pixel_0);
- void Analysis_Line_3(uint8 *pixel_3);
- /*********模式1**************/
- void chasu_1();
- void sudu_1();
- void sudu_control_1();
- int32 Direction_PID_1(int16 center_line);
- /*********模式2*******************/
- void chasu_2();
- void sudu_2();
- void sudu_control_2();
- int32 Direction_PID_2(int16 center_line);
- /**********模式3**************************/
- void chasu_3();
- void sudu_3();
- void sudu_control_3();
- int32 Direction_PID_3(int16 center_line);
- /***********模式4*************************/
- void chasu_4();
- void sudu_4();
- void sudu_control_4();
- int32 Direction_PID_4(int16 center_line);
- /************模式5************************/
- void chasu_5();
- void sudu_5();
- void sudu_control_5();
- int32 Direction_PID_5(int16 center_line);
- /************模式6*****************************/
- void chasu_6();
- void sudu_6();
- void sudu_control_6();
- int32 Direction_PID_6(int16 center_line);
- /***********電機PID輸出*******************/
- void SpeedPID_l();
- void SpeedPID_r();
- void motor_r(int out);
- void motor_l(int out);
- void motor_r0(int out0);
- void motor_l0(int out0);
- /***************顯示設置***************************/
- void xianshi();
- void Show_information();
- void show_par1();
- char huodejianzhi();
- void set_num();
- /****************按鍵中斷*********************************/
- void PORTD_IRQHandler(void); //PORTD端口中斷服務函數
- void key_handler(void); //按鍵按下的測試中斷服務函數
- /************平均數**********************/
- int32 CCD_Average(uint8 *pixel_1);
- /****************加速度陀螺儀***************************/
- uint16 Get_AD_datav( );
- uint16 Get_AD_dataj( );
- uint16 zhong_zhi_lv_bo( );
- void jiaoduronghe(void);
- void get_j_v();
- void get_j_v_init();
- int expect=0;
- int su_du_b=0,D_Last_s_sudu=0;
- int shi_bai=0;
- int biao_2=0,biao_3=0;
- int shi_su=0;
- uint8 Obstacle_Counter = 0;
- uint8 Obstacle = 0 ;
- int Obstacle_1=0,Z_jian=0;
- int biao_1=0,shi_bu_c=0;
- uint8 Track_Type = 0;
- int yyan=0;
- int j_su1=0,s_ji=0;
- int L_sum=0;
- int tiao_flag=0;
- int long_flag=0,Shi_su=0;
- /************************坡道變量**************************/
- int h_f=1, Ramp_su=0,Ramp_su0=0,po_flag=0,qie_flag=0, qie_flag0=0,qie_delay=0,qie_delay0=0,jian_delay=0;
- int po_delay=0,p_x=0,p_x_delay=0;
- #define N 11
- int bu_xun=0;
- //定義存儲接收CCD圖像的數組
- /**********************ccd參數***************************/
- int32 out_kp, out_kd,direction_pwm;
- int title=0;
- int flag1=1,flag2=0,flag3=1;
- int key_num=0;
- int key_flag=1;
- char key;
- int ff=0,ff_flag=0;
- int sx_flag0=0,sx_flag1=0;
- //AD變量
- int16 AD_averagev=0;
- int16 abc=999;
- int16 AD_averagej=0;
- int16 varv=0,varj=0;
- int AD_flag=0;
- int lingpiaoGj=0; //加速度計初始值 小車平衡時的角度值
- int lingpiaoGv=0; //直立陀螺儀初始值
- float jiaodu=0; //融合后真實角度
- float jifen=0; //陀螺儀積分
- float weifen=0; //加速度計陀螺儀融合微分
- int16 var[5];
- /*路徑補償*/
- int lu_jr=0,lu_jl=0,bu_c=0;
- int zhi_d=0;
- uint8 Ramp_Flag=0,Ramp_Type=0;
- int f_z=30;
- int z_flag=0,y_flag=0;
- int shi_z=1,shi_q0=0,shi_q1=0;
- int16 L_Line_0[5] = {32,32,32,32,32};
- int16 R_Line_0[5] = {88,88,88,88,88};
- int16 Track_C_Line_0[5] = {64,64,64,64,64};
- int16 L_Line_1[5] = {20,20,20,20,20};
- int16 R_Line_1[5] = {102,102,102,102};
- int16 L_Line_3[5] = {20,20,20,20,20};
- int16 R_Line_3[15] = {0,0,0,0,0};
- int16 Track_C_Line_1[10] = {64,64,64,64,64};
- int16 D_Kp = 0; //為了提高計算效率和控制精度,已放大10倍
- int16 D_Kd =10; //6 //為了提高計算效率和控制精度,已放大10倍
- int16 D_Error = 0;
- int16 D_Last_Error =0;
- int yu_zhi0=35,yu_zhi1=30,yu_zhi3=30;
- float F_D_Error=0.0;
- int16 fd_D_Error=0;
- int16 CCD_average_1=0,CCD_average_0=0,CCD_average_00,CCD_average_01,CCD_average_3=0;
- int16 D_A=19;//8
- int16 D_B=3;
- int16 D_D=10;
- int16 D_X=9;
- int16 D_F=4560;// 3430 3880 4370 4582 4390 4050 4560 5070
- int spa=0;
- int spi=0;
- int C_P=3;
- int C_D=49;
- int T_L=0;
- int H_W=0;
- int D_KP=0;
- int L_cha0=0,L_cha1=0,L_cha2=0;
- int xian=0;
- int16 duojiPID_JUDUIZ,duoji_pwm_new_e,duoji_pwm_old_e;
- int duojiPID=0,qian=0,oldduojiPID=0;
- //int D_Center=0; //舵機參數已校正
- /*****************速度變量****************/
- int S_DError_r = 0;
- int S_DError_l = 0;
- int pwmout_l=0;
- int pwmout_r=0;
- int pwmout_l0=0;
- int pwmout_r0=0;
復制代碼 剩下的在附件里面
下載:
main.zip
(12.92 KB, 下載次數: 72)
2017-5-28 15:22 上傳
點擊文件名下載附件
程序 下載積分: 黑幣 -5
|
|