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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

十三屆恩智浦智能車雙車程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:329533 發表于 2020-1-10 14:16 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機源程序如下:
  1. // ************************Declaration***************************************//
  2. // File name:        Main
  3. // Author:           Sat_Madman                                             //
  4. // Date:             2015/3/31 0:14:22                                    //
  5. // Version Number:   1.0                                                     //
  6. // Abstract:
  7. //   Freescale source
  8. // Modification history:[including time, version, author and abstract]        //
  9. // 2015/3/31 0:14:22         version 1.0     xxx                                //
  10. // Abstract: Main()                                                          //
  11. // SystemClock = 180Mhz    (修改路徑 Chip -> system_MK60DZ10.c -> pllinit();  //
  12. // *********************************end************************************** //

  13. #include    "common.h"
  14. #include    "include.h"
  15. #include    "math.h"
  16. #include    "stdlib.h"


  17. // ***************define*****************//
  18. #define INT_COUNT  0xFFFF          //LPT 產生中斷的計數次數
  19. #define DMASTATE   1             //0 關閉  1 打開

  20. CommunicationDeal PrintBuf;

  21. // ***************declare*****************//
  22. extern char    flag;
  23. extern int    RecNum[2];
  24. extern float   Angle_P ;        //舵機P參數 Debu8ig
  25. extern float   Angle_D ;        //舵機D參數 Debug
  26. extern int    AD[6];                //AD采集處理后的值
  27. extern char   position;
  28. uint32        LutraDistance;
  29. extern char    LutraConFlag;

  30. void SystemInit(void);
  31. void Delay(void);

  32. // ***************code*******************//

  33. void main()
  34. {

  35.     SystemInit();
  36.     PrintBuf.start = 's';
  37.     PrintBuf.position = '1';
  38.     memcpy(PrintBuf.SpeedData, "123", 3);
  39.     memcpy(PrintBuf.distance, "2341", 4);
  40.     memcpy(PrintBuf.end,"d\n" ,2);

  41.     EnableInterrupts;


  42.     OLED_Print(20,0,"By Madman");
  43.     OLED_Print(5,2,"L1:");
  44.     OLED_Print(60,2,"L2:");
  45.     OLED_Print(5,4,"R1:");
  46.     OLED_Print(60,4,"R2:");
  47.     OLED_Print(5,6,"F1:");
  48.     OLED_Print(60,6,"F2:");
  49. //    MotoGoLeft(3000)
  50. //    MotoGoRight(3000)

  51.     while(1)
  52.     {
  53.         if(flag == 1)
  54.         {
  55.             printf(" %d %d " ,RecNum[0] , RecNum[1]);
  56.             Angle_P = (float)RecNum[0] / 1000.0;
  57.             Angle_D = (float)RecNum[1] / 1000.0;
  58.             OLED_DisNum(5 , 6 , RecNum[0] , 4);
  59.             OLED_DisNum(30 , 6 , RecNum[1] , 4);
  60.             RecNum[0] = 0;
  61.             RecNum[1] = 0;
  62.             flag = 0;
  63.         }
  64.         Delay();
  65. #if 1
  66.         if(position == 0)    OLED_Print(20,0,"ZHI");
  67.         else if(position == 1) OLED_Print(20,0,"ZUO");
  68.         else if(position == 3) OLED_Print(20,0,"RAM");
  69.         else   OLED_Print(20,0,"YOU");

  70.         OLED_DisNum(30 , 2 , AD[0] , 3);
  71.         OLED_DisNum(85 , 2 , AD[1] , 3);
  72.         OLED_DisNum(30 , 4 , AD[2] , 3);
  73.         OLED_DisNum(85 , 4 , AD[3] , 3);
  74.         OLED_DisNum(30 , 6 , AD[4] , 3);
  75.         OLED_DisNum(85 , 6 , AD[5] , 3);
  76. #endif
  77.         
  78.         
  79.         if( LutraConFlag == 1)
  80.         {
  81.             LutrasonicRang();
  82.             
  83.             LutraConFlag = 0;
  84.         }
  85. //        if(key_get(KEY_1) ==  KEY_DOWN)
  86. //        {
  87. //            Delay();
  88. //            if(key_get(KEY_1) ==  KEY_DOWN)
  89. //            {
  90. //                while(key_get(KEY_1) ==  KEY_DOWN);
  91. //                    led_turn(LED0);
  92. //            }
  93. //        }
  94.         //        LutraDistance = LutrasonicRang();
  95.         //        printf("\r\n LutraDis : %d\r\n", LutraDistance);
  96.     }
  97. }



  98. void SystemInit(void)
  99. {
  100.     DisableInterrupts;                                        // 關閉總中斷
  101.     key_init(KEY_MAX);                                        //按鍵初始化
  102.    
  103.     led_init(LED0);                                           //設置GPIO口
  104.     pit_init_ms ( PIT0 , 5 );                                 //設置定時周期 5ms進一次中斷
  105.     set_vector_handler(PIT0_VECTORn ,
  106.                        PIT0_IRQHandler);                      //設置中斷服務函數

  107.     MotoPwmInit();                                            //電機驅動初始化  FTM0_PRECISON = 10000(精度為0.01%)
  108.     SteerInit()  ;                                            //舵機驅動初始化  FTM1_PRECISON = 1000
  109.     ftm_quad_init(FTM2);                                      //正交解碼
  110.     AdcInit();                                                //Adc初始化
  111.     OLED_Init();                                              //OLED初始化
  112.     gpio_init(STOPBUT,GPI,1);
  113.     port_init_NoALT (STOPBUT,PULLUP );
  114.     led (LED0,LED_ON);                                        //開指示燈 關蜂鳴器
  115.     GetMaxValue();                                            //讀取賽道最大值
  116.     OLED_Fill(0x00);                                          //初始清屏
  117. //     set_vector_handler(UART3_RX_TX_VECTORn,uart0_handler);
  118. #if DMASTATE
  119.     uart_init(UART3,115200);
  120.     dma0_uart_init((char*)&PrintBuf, 13);                         //串口3 DMA發送
  121.     set_vector_handler(DMA0_VECTORn, dma0_print_isr);   //DMA0中斷服務函數
  122.     UART3_BASE_PTR->C5 = (1 << 7);                 //開觸發源
  123.     enable_irq(DMA0_IRQn);                          //使能DMA傳輸
  124.     DMA_ERQ |= (1 << 0);
  125. //        dma1_uart_init((char *)&GetBuff , 11);                         //串口3 DMA接收
  126. //        set_vector_handler(DMA1_VECTORn,dma1_get_isr);       //DMA1中斷服務函數
  127. //        UART3_BASE_PTR->C5 = (1 << 5);                     //開觸發源
  128. //        enable_irq(DMA1_IRQn);                             //使能DMA傳輸

  129. #endif
  130.    
  131.     MotoGo(1500)
  132.     Delay();
  133.     LutrasonicInit();
  134.     NVIC_SetPriorityGrouping(0);
  135.     NVIC_SetPriority(PIT0_IRQn,1);
  136.     NVIC_SetPriority(PORTD_IRQn,4);
  137.     enable_irq(PIT0_IRQn);                                    //定時器中斷使能
  138.     enable_irq(PORTD_IRQn);
  139.     // uart_rx_irq_en(UART3);
  140. }


  141. void Delay(void)
  142. {
  143.     uint32 i , j;

  144.     for(i = 1000; i > 0; i--)
  145.         for(j = 1000; j > 0 ; j--);
  146. }

  147. char* mitoa(int value, char* str)
  148. {
  149.     int i = 0;
  150.     do{
  151.         *str++ = value % 10 + '0';
  152.         value = value / 10;
  153.         i++;
  154.     } while (value != 0);
  155.     return str;
  156. }

  157. void SendPrintBuf(CommunicationDeal* PrintBuff,char position,int speed,int distance)
  158. {
  159.     PrintBuff->position = position + 48;
  160.     memset(PrintBuff->SpeedData,0,3);
  161.     memset(PrintBuff->distance,0,6);
  162.     mitoa(speed,PrintBuff->SpeedData);
  163.     mitoa(distance,PrintBuff->distance);
  164. }
  165. /**********************GPIO LIST***************************/
  166. // ********************FTM********************************
  167. // PC1、PA11                               ------正交解碼
  168. // PC2                                     ------FTM0_CH1_PIN (m1)
  169. // PC3                                     ------FTM0_CH1_PIN (m1)
  170. // PC4                                     ------FTM0_CH3_PIN (m2)
  171. // PA7                                     ------FTM0_CH4_PIN (m2)
  172. // PA8                                     -------Steer

  173. // *******************UART********************************
  174. // PC16 、PC17                             -------Rx Tx

  175. // *******************ADC*********************************
  176. // PTB6                                    -------LEFT1
  177. // PTB7                                    -------LEFT2
  178. // PTB0                                    -------RIGHT1
  179. // PTB1                                    -------RIGHT1
復制代碼

所有資料51hei提供下載:
S(前車).7z (600.09 KB, 下載次數: 22)


評分

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

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久视频免费看 | 国产色婷婷久久99精品91 | 一区二区三区在线观看视频 | 超碰97免费 | 亚洲国产中文在线 | 欧美福利 | 一级毛片中国 | 亚洲另类春色偷拍在线观看 | 一区二区三区视频在线免费观看 | 91精品国产91久久久久久密臀 | 九九热精品视频 | 久久久一区二区三区四区 | a毛片| av片免费 | 亚洲二区在线观看 | 国产69精品久久99不卡免费版 | 日本成人中文字幕 | 亚洲精品日韩综合观看成人91 | 精品欧美一区二区精品久久久 | 日韩在线一区二区三区 | 在线观看你懂的网站 | 国产区视频在线观看 | 免费看91| 国产欧美一区二区三区在线播放 | 久久99精品久久久久久 | 91精品国产91久久综合桃花 | 国产精品伦一区二区三级视频 | 亚洲福利一区二区 | 午夜国产精品视频 | 国产一区二区三区免费观看在线 | 99av成人精品国语自产拍 | 婷婷色国产偷v国产偷v小说 | 91精品在线播放 | 国产精品久久久乱弄 | 国产精品入口麻豆www | 欧美日韩网站 | 亚洲九九 | 一区二区三区免费看 | ww亚洲ww亚在线观看 | 免费国产一区二区 | 日韩视频在线免费观看 |