亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? main.c

?? 結(jié)合飛思卡爾16位單片機(jī)MC9S12DG128B完成小車自動尋跡
?? C
?? 第 1 頁 / 共 2 頁
字號:
  /*
   *********************************************************************************
   *
   * 工程名稱:SmartCar 
   * 
   * 功能描述:結(jié)合飛思卡爾16位單片機(jī)MC9S12DG128B完成小車自動尋跡,沿黑線行駛功能 
   * 
   *           IDE環(huán)境: Metrowerks CodeWarrior 4.1
   * 
   * 組成文件: main.c 
   *            
   *            SmartCar.c/PID.c/LCD1620.c/Test.c 
   * 
   * 說明:    本版本為智能小車程序早期版本,還有待更進(jìn)一步完善 
   * 
   * 日期:    2006-5-6 
   *
   *      (c) Copyright 2006,Zhao Cheng 
   *  
   *      All Rights Reserved 
   *
   *      By : Zhao Cheng
   **********************************************************************************/
  
  
   /* ********************************************************************************
   ** 
   *                                
   *                                main.c                                           * 
   *       
   *       (c) Copyright 2006,Zhao Cheng
   *     
   *       All Rights Reserved * 
   *      
   *       By : Zhao Cheng 
   ******************************************************************/
    #include <hidef.h>                              /* common defines and macros */ 
    #include <mc9s12dg128.h>                        /* derivative information */
    #pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
    
   
    #define HIGHSPEED 11500                         /* 速度參量,此處未使用測速模塊 */ 
    #define LOWSPEED0 12500                         /* 0-24000 數(shù)值越大,速度越慢 */ 
    #define LOWSPEED1 12000                         /* used in CarMain() */
    #define STABMAX 50 
    #define StopCar() PORTK |= 0x80                 /* stop the motor */ 
    #define StartCar() PORTK |= 0x04                /* start the motor */ 
    #define BrakeCar() PORTK &= 0xfb                /* slow the speed of the SmartCar */ 
   
     unsigned int SYSCLOCK=0;                        /* update in INT_Timer0() */ 
   /* *********************************************************************************** 
    *
    *
    *                               FUNCTION PROTOTYPES 
    **********************************************************************************/
    
    /*                              write in "SmartCar.c"                            */
    void Init_INT_RTI(void);                        /* initiate Real Time Interrupt */ 
    void Init_INT_Timer(void);                      /* INT_Timer0 initiate */ 
    void Init_PWMout(void);                         /* initiate PWM output */ 
    void PWMout(int, int);                          /* output PWM */
    
    /*                              write in "PID.c"                                  */ 
    void Init_PID(void);                            /* initiate PID parameter */ 
    int CalculateP(void);                           /* calculate parameter P */ 
    float CalculatePID(void);                       /* calculate PID */ 
    int SignalProcess(unsigned char);               /* Process the signal from the sensors */
    
    /*                              write in "Test.c"                                 */ 
    void IOtest(void);                              /* Test I/O */ 
    void PWMtest(void);                             /* Test PWM output */ 
   void SignalTest(void);                           /* Test the sensors */
    
   /*                               write in local file                                */ 
   void Init(void);                                 /* initiate parameter */ 
   void ProtectMoto(void);                          /* the function protecting the Motor */ 
   void CarMain(void);                              /* SmartCar main function */ 
   
   /* *********************************************************************************** 
   * 
   *                     
   *                                           主程序 
   * 
   *    程序描述: 完成智能小車系統(tǒng)的初始化,通過按鍵可選擇工作模式,有I/O測試,PWM 輸出測試 
   *   
   *              傳感器測試,以及小車正常工作模式 
   *    
   *    硬件連接: PORTB 接傳感器  ;   
   *              
   *              PWM 輸出口 (1)接舵機(jī) (2)接電機(jī)驅(qū)動芯片MC33886 
   *    說明:    無
   **********************************************************************************/
   
   void main(void) 
      { 
          Init(); 
          DDRB = 0x00; 
          switch(PORTB)
              { 
                 case 0x80: 
                            IOtest(); 
                            break; 
               
                 case 0x40: 
                            PWMtest(); 
                            break; 
                 case 0x20:  
                            SignalTest(); 
                            break; 
                 default: 
                            DDRA = 0x00; 
                            DDRB = 0xff; 
                            DDRK = 0xff; 
                            PORTB = 0xff; 
                            CarMain(); 
                 EnableInterrupts; 
                            for(;;); 
                            break; 
               }
      }
      
   /* 
    *********************************************************************************** 
    *
    *
    *                         小車尋跡行駛函數(shù)                                        
    * 
    *
    *    程序描述: 通過傳感器采集數(shù)據(jù),并對其進(jìn)行處理,通過PID算法得出小車穩(wěn)定行駛所需的參數(shù),
    *
    *              而調(diào)用PWM輸出函數(shù) 控制舵機(jī)與電機(jī)的工作 
    * 
    *    注意: 這個函數(shù)調(diào)用了 SignalProcess(unsigned char),BrakeCar(),PWMout(Direction, Velocity)
    *
    *    說明: 無 
    **********************************************************************************/   
    
    void CarMain(void) 
      { 
          static int Direction=0, Velocity; 
          static unsigned char signal; 
          static unsigned int BrakeTime = 0, BrakeControl = 0; 
          static unsigned int Stability=0, Stab[STABMAX], PStab=0, StabAver; 
          int i; 
          signal = PORTA; 
          PORTB = ~signal; 
          Direction = SignalProcess( signal ); /* 穩(wěn)定性系數(shù)的計(jì)算 */ 
          Stability -= Stab[PStab]; 
          Stab[PStab] = (unsigned int)Direction/100; 
          Stability += Stab[PStab]; 
          PStab++; 
             if(PStab >= STABMAX) 
                 PStab=0; StabAver = 0; 
                  for(i=0;i<STABMAX;i++) 
                     { 
                       if(Stability > Stab[i]) 
                           StabAver += Stability - Stab[i]; 
                       else 
                           StabAver += Stab[i] - Stability; 
                      } 
             if( BrakeTime != 0) 
               
                { 
                     BrakeTime--; 
                     BrakeCar(); 
                 }
             else 
                { 
                      StartCar(); 
                         if(BrakeControl>0) 
                             BrakeControl--; 
                         if(Direction < -4000 || Direction > 4000 ) 
                             { 
                                Velocity = LOWSPEED0;
                                 if(BrakeControl == 0 && StabAver/STABMAX<22) 
                                   { 
                                       BrakeTime = 20; 
                                       BrakeControl = 120; 
                                    } 
                             } 
                         else 
                             { 
                                if(Direction < -2500 || Direction > 2500 ) 
                                                      
                                                        Velocity = LOWSPEED1; 
                                else 
                                                        Velocity = HIGHSPEED; 
                              }
                   
                } 
          
          PWMout(Direction, Velocity); 
      }
      
     /* *********************************************************************************
      *
      * 
      *                             系統(tǒng)初始化函數(shù) 
      * 
      * 程序描述: 初始化了系統(tǒng)時鐘,F(xiàn)LASH 和 EEPRO的工作頻率,PWM輸出口,定時器,
      *           
      *           以及PID算法中的有關(guān)參數(shù) 
      * 
      * 注意: 這個函數(shù)調(diào)用了 Init_PWMout()nit_INT_Timer()nit_PID()   
      * 
      * 說明: 無 
      **********************************************************************************/ 
      
      void Init(void) 
           { 
                REFDV=0x01;                       /* initiate PLL clock */ 
                SYNR =0x02;                       /* system clock 24M */ 
                while (!(CRGFLG & 0x08)){}        /* wait untill steady */ 
                CLKSEL=0x80;                      /* 選定所相環(huán)時鐘 */ 
                FCLKDIV=0x49;                     /* 使FLASH 和 EEPROM的擦除操作工作頻率在200HZ左右 */ 
                ECLKDIV=0x49; 
                Init_PWMout();                    /* 01:50Hz 45:1kHz */ 
                Init_INT_Timer();                 /* initiate ETC(Enhanced Capture Clock) */ 
                Init_PID();                       /* initiate PID caculating process */ 
                DDRK |= 0x80;                     /* Start Car -- stop car */ 
                PORTK &= 0x7F; 
           }
      
     /* *********************************************************************************
      *
      * 
      *                               SmartCar.c 
      *
      *          (c) Copyright 2006,Zhao Cheng 
      *          
      *          All Rights Reserved 
      * 
      *          By : Zhao Cheng 
      *          
      *          Data : 2006_5_6 
      *          
      *          Note : Don't change this file if possible. 
      **********************************************************************************/     
               #include <hidef.h> 
               #include <mc9s12dg128.h> 
               extern unsigned int SYSCLOCK;                   /* 引用全局變量,系統(tǒng)時鐘 */ 
               void CarMain(void); 
               
      /* *********************************************************************************
      *
      * 
      *                             PWM初始化函數(shù) 
      * 
      **********************************************************************************/         
                                
       void Init_PWMout(void) 
             { PWME = 0x22;                         /*01:50Hz 45:1kHz */ 
               PWMPOL = 0x22; 
               PWMCTL = 0x50; 
               PWMCLK = 0x02; 
               PWMSCLA = 4; 
             }
      /* *********************************************************************************
       *
       * 
       *                                 PWM輸出函數(shù) 
       * 
       *  程序描述:輸入?yún)?shù)為方向,速度 
       * 
       *  方向:-45~45 
       *
       * 速度:0~24000 
       **********************************************************************************/ 
         void PWMout(int Direction, int Velocity) 
              { 
                  Direction = Direction/3 + 4500; 
                    if(Direction<3000)  
                                        Direction=3000; 
                    if(Direction>6000) 
                                        Direction=6000; 
                                        PWMPER01 = 60000;          /* Center 1500ms*3 */ 
                                        PWMDTY01 = Direction+93;   /* 設(shè)置舵機(jī)角度 */ 
                    if(Velocity>24000) Velocity=24000; 
                                        PWMPER45 = 24000;          /* 1kHz ( <10kHz ) */ 
                                        PWMDTY45 = Velocity;       /* 設(shè)置電機(jī)速度 */ 
               } /* initiate Real Time Interrupt 1.0 */ 
           
          void Init_INT_RTI(void) 
                  { 
                      RTICTL = 0x74; 
                      CRGINT |=0x80; 
                  }                    /* Real Time Interrupt 1.0 */ 
         interrupt void INT_RTI(void) 
                  {
                       CRGFLG |= 0x80; /* clear the interrrupt flag */ 
                       
                   }                   /* INT_Timer0 initiate 1.0 */ 
         void Init_INT_Timer(void) 
                  { 
                       TSCR2 =0x07;     /* 128Hz at 16M bus clok */ 
                                        /* 128Hz * 2/3 at 24m bus clock */ 
                                          /* in fact it is a little more than it. */ 
                       TIOS |=0x01;      /* I/O select */ 
                       TIE |=0x01;       /* Interrupt Enable */ 
                       TSCR1|=0x80;      /* TSCR1_TEN=1 
                                         //Timer Enable */ 
                   }                     /* INT_Timer0 1.0 */ 
         interrupt void INT_Timer0(void) 
                   { 
                        SYSCLOCK++; 
                        CarMain(); 
                        TC0 = TCNT + 1874; /* 1875-1 :100Hz */ 
                                           /* F = Fosc / (TC*128) */ 
                        TFLG1 |=0x01; /* clear interrupt flag */ 
                    } /* not finished EEPROM */ 
            
         void EEPROM(void) 
                          
                    { 
                         ECLKDIV = 0x4F; 
                         while(!(ECLKDIV&0x80)){}     /* wheather */  
                         while(!(ESTAT&0x80))  {}     /* wheather the command buffer is empty */ 
                         while(!(EPROT&0x80))  {}     /* wheather the eeprom is enabled to */ 
                         ECMD = 0x41; ESTAT |= 0x80; 
                         while(!(ESTAT&0x80))  {}     /* wheather the command buffer is empty */ 
                    }           
             
    /* *********************************************************************************
     *
     * 
     *                                    PID.c 
     * 
     *  Description: This file includes some basic calculation function of PID 
     *
     *               (c) Copyright 2006,Zhao Cheng 
     *
     *               All Rights Reserved 
     * 
     *               By : Zhao Cheng * 
     *  Data : 2006_5_6 
     *  
     *  Note : Don't change this file if possible. 
     **********************************************************************************/  
     
       #include <mc9s12dg128.h>                             /* derivative information */     
       
    /* *********************************************************************************
     *
     * 
     *                                  宏定義 
     **********************************************************************************/   
     

     #define SENSORNUM   8 
     #define SAMPLETIMES   5
     
     /* *********************************************************************************
      *

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本电影欧美片| 麻豆精品一区二区综合av| 婷婷六月综合亚洲| 色婷婷av一区二区三区之一色屋| 亚洲精品一区二区三区99| 日本va欧美va精品| 欧美日韩一区高清| 亚洲色图视频网站| 色婷婷av一区| 亚洲二区在线观看| 99久免费精品视频在线观看| 欧美一区二区久久久| 首页国产丝袜综合| 欧美一区二区性放荡片| 琪琪久久久久日韩精品| 欧美一区二区福利在线| 美女www一区二区| 26uuu国产一区二区三区| 美腿丝袜亚洲三区| 精品久久人人做人人爱| 国产一区在线视频| 国产精品久久久久久妇女6080| 成人夜色视频网站在线观看| 亚洲欧洲成人精品av97| caoporen国产精品视频| 亚洲欧洲综合另类| 欧美日韩成人综合天天影院| 久久精品二区亚洲w码| 国产网站一区二区| 成人免费va视频| 一级做a爱片久久| 欧美性三三影院| 九九热在线视频观看这里只有精品| 26uuu欧美| 99久久精品一区| 午夜成人在线视频| 久久久久久久综合色一本| 成人av片在线观看| 亚洲精品成人少妇| 91精品在线麻豆| 国产精品一区二区在线观看网站| 国产精品网站导航| 欧美日韩亚洲综合在线 | 91麻豆精品久久久久蜜臀| 五月天精品一区二区三区| 久久精品一区二区三区av| 91在线观看下载| 日本最新不卡在线| 日本一区二区在线不卡| 欧美三级一区二区| 久久97超碰色| 亚洲人成电影网站色mp4| 欧美一区欧美二区| 激情文学综合丁香| 一区二区三区四区乱视频| 精品成人在线观看| 91国内精品野花午夜精品| 亚洲电影激情视频网站| 国产精品理论在线观看| 欧美一区二区三区影视| 色诱亚洲精品久久久久久| 激情六月婷婷综合| 五月婷婷激情综合网| 国产精品久久久久久久浪潮网站| 欧美一区二区三区在线视频| 日本道精品一区二区三区 | 自拍偷拍欧美激情| 日韩你懂的在线观看| 欧美亚洲国产一区二区三区| 国产超碰在线一区| 久久se这里有精品| 一区二区三区欧美日韩| 欧美高清在线视频| 精品国产一区二区在线观看| 3d动漫精品啪啪| 色婷婷av一区| 99视频热这里只有精品免费| 国产一区高清在线| 麻豆成人久久精品二区三区红 | a在线播放不卡| 国产精品资源在线观看| 视频在线观看一区二区三区| 亚洲卡通动漫在线| 久久先锋影音av| 精品久久免费看| 日韩欧美中文一区二区| 欧美日免费三级在线| 日本精品裸体写真集在线观看| 不卡一区二区在线| av欧美精品.com| 成人免费毛片aaaaa**| 国产69精品一区二区亚洲孕妇| 午夜精品免费在线观看| 亚洲国产精品欧美一二99| 亚洲综合在线第一页| 亚洲天堂a在线| 亚洲另类春色校园小说| 亚洲人一二三区| 中文字幕在线一区| 国产精品成人一区二区艾草 | 国产成人av电影| 国产精品99久久久久久似苏梦涵| 国产毛片精品一区| 国产成人a级片| 成人妖精视频yjsp地址| 99精品久久只有精品| aaa亚洲精品| 色偷偷久久人人79超碰人人澡| 色欧美日韩亚洲| 欧美日韩国产小视频| 欧美第一区第二区| 久久久久国产精品人| 国产精品久久久久天堂| 2024国产精品| 国产精品久久久久久久裸模| 亚洲美女区一区| 亚洲国产精品久久人人爱蜜臀| 日韩中文欧美在线| 懂色av中文一区二区三区| 欧美日精品一区视频| 国产欧美日韩精品a在线观看| 一区二区三区在线视频播放| 激情小说欧美图片| 欧美亚洲尤物久久| 国产午夜精品久久久久久久| 亚洲r级在线视频| 成人免费不卡视频| 欧美成人三级电影在线| 亚洲精品精品亚洲| 精品一区二区三区日韩| 日本乱人伦一区| 国产日韩欧美不卡| 麻豆91精品视频| 欧美亚洲丝袜传媒另类| 国产欧美日韩另类视频免费观看| 五月婷婷欧美视频| 色噜噜久久综合| 国产欧美1区2区3区| 美腿丝袜亚洲色图| 欧美日韩1234| 亚洲欧美二区三区| 成人性生交大片免费看在线播放| 日韩欧美亚洲国产精品字幕久久久| 亚洲欧美区自拍先锋| 成人一级片网址| 久久亚洲一级片| 久久精品国产精品亚洲红杏| 欧美日韩国产成人在线91| 亚洲精品伦理在线| 99久久精品国产导航| 久久久99免费| 韩国av一区二区三区四区 | 色8久久精品久久久久久蜜| 久久精品人人做人人综合| 蜜臀av在线播放一区二区三区| 欧美日韩一区二区在线观看 | 欧美群妇大交群中文字幕| 亚洲人成精品久久久久| 99免费精品在线观看| 亚洲国产经典视频| 国产精品一卡二卡在线观看| 精品播放一区二区| 美女www一区二区| 欧美一区二区国产| 毛片一区二区三区| 欧美va亚洲va| 久久99精品一区二区三区三区| 欧美一级久久久久久久大片| 首页欧美精品中文字幕| 555www色欧美视频| 日本不卡的三区四区五区| 欧美日韩免费一区二区三区 | 欧美第一区第二区| 黄色资源网久久资源365| 日韩免费高清av| 久久99国产精品免费| 久久日韩精品一区二区五区| 久国产精品韩国三级视频| 久久久久久免费网| 成人三级伦理片| 亚洲欧美激情在线| 欧美日韩电影在线播放| 麻豆国产精品官网| 久久色在线观看| av资源站一区| 亚洲超碰97人人做人人爱| 欧美嫩在线观看| 国模无码大尺度一区二区三区| 国产欧美精品区一区二区三区 | 久久美女艺术照精彩视频福利播放| 国产一区免费电影| 中文字幕一区二区三区乱码在线| 91日韩一区二区三区| 亚洲高清一区二区三区| 欧美白人最猛性xxxxx69交| 成人免费三级在线| 亚洲成人免费视| 久久久久国产精品麻豆| 色噜噜偷拍精品综合在线| 日本欧美久久久久免费播放网|