久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4466|回復: 0
打印 上一主題 下一主題
收起左側

飛思卡爾智能汽車競賽mpc56045源程序分享

[復制鏈接]
跳轉到指定樓層
樓主
ID:242311 發表于 2017-10-24 08:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本文是小車的源程序代碼,其中包括許多諸如邊沿搜索、但雙線變換等算法。

mpc56045月9日改 02小車快速穩定

單片機源程序如下:
  1. /********************************************************   
  2. 【平    臺】龍丘MPC多功能開發板
  3. 【編    寫】龍丘
  4. 【Designed】by Chiu Sir
  5. 【E-mail  】chiusir@yahoo.cn
  6. 【軟件版本】V1.0
  7. ------------------------------------------------
  8. 【dev.env.】Code Warrior 2.9
  9. 【Target  】MPC5604B/P
  10. 【內部晶振】 khz
  11. 【外部晶振】8MHz
  12. 【總線頻率】64MHz


  13. ************************
  14. 更改:未給Image取值 0x00
  15. *************************
  16. **  ---PC3 場中斷 EIRQ[6]  中斷處理函數 External_IRQ_0()
  17. **         --PE12 場中斷 EIRQ[11]  中斷處理函數 External_IRQ_1()
  18. **  ---A7  攝像頭數據口 */

  19. //電機PA5,PA6,PA10,PA11
  20. //舵機PA9
  21. //攝像頭行中斷PC3,場中斷E12,數據A7
  22. //串口TX0:PB2        RX0:PB3
  23. //編碼器測速PA1,PA2,PA3,PA4
  24. //紅外引腳PE4,PE10

  25. #include "includes.h"
  26. void ALL_init();
  27. void delay_ms1(int ms);
  28. //------------------采集數組-------------------------//
  29. uint8 Image[60][70]={0};


  30. //-----------------加權處理數組----------------------//
  31. uint8 Standard[MAXLINE]={
  32.                         
  33.                          1 , 1 , 1 ,1 ,1 ,1 , 1 ,1 ,1 ,1 ,
  34.                          2 , 2 , 2 ,2 ,3 ,3 , 3 ,3 ,4 ,4 ,
  35.                          4 , 4 , 5 ,5 ,5 ,5 , 4 ,4 ,4 ,4 ,
  36.                          3 , 3 , 3 ,3 ,3 ,3 , 3 ,3 ,3 ,3 ,
  37.                          2 , 2 , 2 ,2 ,2 ,2 , 2 ,1 ,1 ,1 ,
  38.                          1 , 1 , 1 ,1 ,1 ,1 , 1 ,1 ,0 ,0 ,                        

  39.   
  40.   
  41.                           //0 , 1 , 1 ,1 ,1 ,1 , 1 ,1 ,1 ,1 ,
  42.                           //2 , 2 , 3 ,3 ,3 ,3 , 4 ,4 ,4 ,4 ,
  43.                           //4 , 4 , 5 ,5 ,5 ,6 , 6 ,6 ,6 ,5 ,
  44.                           //4 , 4 , 4 ,3 ,3 ,3 , 3 ,2 ,2 ,2 ,
  45.                           //1 , 1 , 1 ,1 ,1 ,1 , 1 ,1 ,1 ,1 ,
  46.                          // 1 , 1 , 1 ,1 ,1 ,1 , 1 ,0 ,0 ,0 ,
  47.                           
  48.                         

  49.    //                       1 , 1 , 1 ,1 ,1 ,1 , 1 ,1 ,1 ,1 ,
  50.   //                        2 , 2 , 2 ,2 ,3 ,3 , 3 ,3 ,4 ,4 ,
  51.   //                        4 , 4 , 5 ,5 ,5 ,5 , 4 ,4 ,4 ,4 ,
  52.   //                        3 , 3 , 3 ,3 ,3 ,2 , 2 ,2 ,2 ,2 ,
  53.   //                        1 , 1 , 1 ,1 ,1 ,1 , 1 ,1 ,1 ,1 ,
  54.   //                        1 , 1 , 1 ,1 ,1 ,1 , 1 ,0 ,0 ,0 ,                         };

  55. };

  56. //-----------------行中線處理數組------------------------//
  57. uint16 left_d[MAXCOLUM+1],right_d[MAXCOLUM+1],center_one[MAXCOLUM+1];
  58. uint16 left_d2[MAXCOLUM+1],right_d2[MAXCOLUM+1],center_one2[MAXCOLUM+1];


  59. //-----------------舵機PD處理變量-----------------------//
  60. uint16 duoji=ANGLE_M;
  61. int center_ave=0;
  62. uint16 dis_num=0;
  63. float dismid=0, dismid_d01=0,dismid_d02=0,dismid_error01=0,dismid_error02=0,dismid_error03=0;
  64. int center_all=0;
  65. //----------------電機PD,編碼器測速處理變量-------------//
  66. uint32_t tmp1,tmp2,tmp3,tmp4, pwm_tmp_R=0,pwm_tmp_L=0;
  67. uint32_t now_speed_L,now_speed_R;
  68. float  Rd_error=0,Rdd_error=0,Rerror=0,Rspeed_ept=0,Rpre_error=0,Rpre_pre_error=0,Ld_error=0,Ldd_error=0,Lerror=0,Lspeed_ept=0,Lpre_error=0,Lpre_pre_error=0,Setept1=90,Setept2=90;

  69. //----------------撥碼按鍵變量-------------------------//
  70. int ck;
  71. uint8 Boma;                    //撥碼14,13顯示圖像 撥碼12顯示舵機 按鍵值 撥碼11顯示左中右數組值
  72. int8 key2=30,key1=10;
  73. uint8 deal_hang_flag=0;
  74. int clki,clkj;  
  75. void main (void)
  76. {   

  77.    
  78.    
  79.          
  80.         ALL_init();
  81.         LCD_init();

  82.         GPIO_init(PORT_A,12,1,0,0,1);
  83.         GPIO_init(PORT_A,13,1,0,0,1);
  84.           GPIO_init(PORT_A,14,1,0,0,1);
  85.   
  86.          
  87.           /*---------按鍵 撥碼引腳初始化-------*/
  88.           GPIO_init(PORT_E,0,0,1,1,1);            
  89.           GPIO_init(PORT_E,1,0,1,1,1);
  90.     GPIO_init(PORT_E,2,0,1,1,1);
  91.           GPIO_init(PORT_E,3,0,1,1,1);

  92. //給預中間值賦值  
  93.      for( ck=0;ck<MAXCOLUM;ck++)
  94.      {
  95.        center_one[ck]=34;
  96.        center_one2[ck]=34;
  97.      }
  98.      
  99.      for(ck=0;ck<=MAXLINE;ck++)
  100.           {
  101.             left_d[ck]=7;
  102.             right_d[ck]=MAXCOLUM-9;
  103.             left_d2[ck]=7;
  104.             right_d2[ck]=MAXCOLUM-9;
  105.             //給每一行的第一個數和最后一個數賦值,第一個為0 最后一個為最大列數
  106.           }
  107.    /* Boma=(((GPIO_get(PORT_E,0)&0x01)|(GPIO_get(PORT_E,1)&0x01)<<1)|((GPIO_get(PORT_E,2)&0x01)<<2)|((GPIO_get(PORT_E,3)&0x01)<<3))&0xff;
  108.     if(Boma==0)                 //安全期望
  109.     {
  110.     Setept1=90;
  111.     Setept2=70;       
  112.     }
  113.    
  114.     else if(Boma==1)             //中速期望
  115.     {
  116.      Setept1=90;
  117.      Setept2=80;
  118.     }
  119.     else if(Boma==2)             //沖擊速度
  120.      {
  121.       Setept1=90;
  122.       Setept2=90;
  123.      }*/
  124.                   
  125.         while(1)
  126.         {  
  127.           //GPIO_set(PORT_A, 13, 1);
  128.      Boma=(((GPIO_get(PORT_E,0)&0x01)|(GPIO_get(PORT_E,1)&0x01)<<1)|((GPIO_get(PORT_E,2)&0x01)<<2)|((GPIO_get(PORT_E,3)&0x01)<<3))&0xff;
  129.           Lcd();
  130.        
  131.           if(deal_hang_flag==1)
  132.           {
  133.            Show();
  134.            deal_hang_flag=0;
  135.           }       

  136.       Deal_First_Center();
  137.       CalculateSoverAngle();  
  138.       CalculateSpeed();

  139.       //GPIO_set(PORT_A, 13, 0);
  140.       //GPIO_set(PORT_A, 14, 1);
  141.       
  142.          }
  143. }
  144.                
  145. //-----------------------初始化設置總函數-------------------------//
  146. void ALL_init()
  147. {
  148.        
  149. //----------系統時鐘、中斷初始化部分-------------
  150.         initModesAndClock();                  // MPC56xxP/B/S: Initialize mode entries, set sysclk = 64MHz
  151.         disableWatchdog();                    // Disable watchdog
  152.         GPIO_init(PORT_A,9,1,0,0,0);
  153.         GPIO_init(PORT_C,3, 0,0,0,0);          //行中斷C3
  154.           GPIO_init(PORT_E,12,0,0,0,0);          //場中斷E7
  155.           GPIO_init(PORT_A,7, 0,0,0,0);       //初始化輸入管腳A7數據位
  156. //----------初始化電機舵機-------------*/       
  157.         Emios_0_Init(16);                //  將PLL系統時鐘/16送到EMIOS0模塊  64/16=4MHz
  158.         Emios_0_initMcb(23, 400,1);         //電機周期100us
  159.         Emois_0_initOPWM(5, 400, 400,BUS_A);        //占空比1/4
  160.         Emois_0_initOPWM(6, 400, 400,BUS_A);
  161.         Emois_0_initOPWM(10, 400, 400,BUS_A);
  162.         Emois_0_initOPWM(11, 400, 400,BUS_A);
  163.         Emios_0_initMcb(8, 20000,8);                          //舵機周期20ms
  164.         Emois_0_initOPWM(9, 18516,20000,BUS_C);     //舵機中值18520,左偏最大值18355,右偏最大值 18670
  165. //----------- 電機測速 反饋初始化 ---------
  166.         vfnInit_Emios_0_MC_1();      // ALLOW pec 模數輸入模式的行當的啦
  167.     vfnInit_Emios_0_MC_2();
  168.         vfnInit_Emios_0_MC_3();
  169.         vfnInit_Emios_0_MC_4();               

  170.         PIT_init(0,5000,1);                 //定時器0初始化         Initialize PIT1 for 1KHz IRQ, priority 2
  171.     //ADC_init(ANS0);                        //ANS0通道初始化,ANS0,ANS1,ANS2可用
  172.         initINTC();                                        // Initialize INTC for software vector mode
  173.     EIRQ_init(6,2,3);                        //使能外部中斷6   PC3  行中斷
  174.         EIRQ_init(11,2,3);                        //使能外部中斷11  PE12 場中斷
  175. //        UART_init(UART0,9600,1);
  176. //--------------------允許中斷------------------//
  177.         EnableIrq();                                //使能中斷打開       
  178. }
復制代碼

所有資料51hei提供下載(完整源碼):
第十屆飛思卡爾智能汽車競賽省賽程序.rar (271.72 KB, 下載次數: 19)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 人妖av| 久久久久综合 | 国产欧美精品 | 亚洲国产一区二区三区, | 精国产品一区二区三区四季综 | 一级欧美 | 亚洲精品久久久久中文字幕二区 | 国产午夜精品一区二区三区四区 | 国产福利资源在线 | 精品国产91乱码一区二区三区 | 一区二区三区视频在线观看 | 成人美女免费网站视频 | 亚洲高清成人 | 欧美日韩免费 | 91精品国产乱码久久久久久久久 | 黑人巨大精品欧美一区二区免费 | 久久美女网 | 精品欧美乱码久久久久久1区2区 | 国产一在线观看 | 亚洲国产成人精品女人久久久 | 二区在线视频 | 亚洲视频在线观看免费 | 精品久 | 天堂在线免费视频 | 日韩电影免费在线观看中文字幕 | 精品国产欧美一区二区 | 国产ts人妖系列高潮 | 香蕉久久久久久 | 日韩亚洲欧美综合 | 国产一区二区精品自拍 | 有码在线 | 欧美日韩在线一区 | 久久精品小视频 | 国外成人在线视频网站 | 欧美 日韩 国产 成人 在线 | 中文区中文字幕免费看 | 日韩不卡三区 | 91xh98hx 在线 国产 | 五月天激情电影 | 日韩欧美一区二区三区四区 | 91精品国产色综合久久不卡98 |