新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > XS128單片機程序:智能小車舵機的控制

        XS128單片機程序:智能小車舵機的控制

        作者: 時間:2016-12-01 來源:網絡 收藏
        /***********************************************/

        //This is our control of the steering gear(舵機)
        //Next we will use it by PI control;
        //Date :2013/5/15
        /***********************************************/
        #include /* common defines and macros */
        #include "derivative.h" /* derivative-specific definitions */

        本文引用地址:http://www.104case.com/article/201612/324122.htm

        /*2.************所有的延時程序**********************/
        /******************N倍0.75us 延時**********
        函 數:delay_us()
        功 能:約0.75 us延遲
        參 數:n_us
        說 明:本函數的總線時鐘為16 MHz
        ******************************************/
        void delay_us(uint n_us)
        {
        uint loop_i;
        for (loop_i=0; loop_i< n_us; loop_i++)
        {;}
        }
        /****************************************
        函 數:delay_ms()
        功 能:約1 ms延遲
        說 明:本函數的總線時鐘為16 MHz.
        *****************************************/
        void delay_ms(uint n_ms)
        {
        uint loop_i;
        for (loop_i=0; loop_i< n_ms; loop_i++)
        {
        delay_us(1335);
        }//總線時鐘為16 MHz時
        } // 延遲1335×12個機器周期 1 ms
        /***************************************
        函 數:delay_s()
        功 能:約1 s延遲
        說 明:本函數的總線時鐘為16MHz。
        ***************************************/
        void delay_s(uint n_s)
        {
        uint loop_i;
        for (loop_i=0; loop_i< n_s; loop_i++)
        { delay_ms(1000); }
        }

        /************************************/
        //函數:PWM 波初始化程序
        //功能:PWM 波初始化程序完成了電動機和舵機的控制
        // 所有通道均采用級聯的方式
        // 0-1通道級聯控制舵機
        // 2-3通道級聯控制電機前進
        // 6-7通道級聯控制電機后退
        //說明; 舵機控制的
        //時間:2013、5、15
        /************************************/
        void PWM_init (void) {
        PWME =0x00; //禁止PWM模塊
        PWMCLK =0xFF; //時鐘選擇寄存器SA SB
        PWMPRCLK =0x33; //選擇時鐘A預分頻因子8/1000000Hz
        PWMSCLA =5; //SA比例因子 2.5 /100,000Hz
        PWMSCLB =250; //SB比例因子 250 /2000 Hz
        PWMCTL =0xF0; //所有的都級聯
        PWMPOL =0xFF; //極性控制
        PWMCAE =0x00; //對齊方式
        PWMPER01 =2000; //周期寄存器 定時20ms
        PWMPER23 =
        PWMDTY01 = 0; // 設置PWM通道初始化占空比
        PWME =0xFF; //使能

        }
        void main(void) {

        PWM_init ();
        while(1){
        PWMDTY01=150;
        delay_ms(500);
        PWMDTY01=155;
        delay_ms(500);
        PWMDTY01=160;
        delay_ms(500);
        PWMDTY01=165;
        delay_ms(500);
        PWMDTY01=170;
        delay_ms(500);
        PWMDTY01=175;
        delay_ms(500);
        PWMDTY01=180;
        delay_ms(500);
        PWMDTY01=185;
        delay_ms(500);
        PWMDTY01=190;
        delay_ms(500);
        PWMDTY01=150;
        delay_ms(500);
        PWMDTY01=145;
        delay_ms(500);
        PWMDTY01=140;
        delay_ms(500);
        PWMDTY01=135;
        delay_ms(500);
        PWMDTY01=130;
        delay_ms(500);
        PWMDTY01=125;
        delay_ms(500);
        PWMDTY01=120;
        delay_ms(500);
        PWMDTY01=115;
        delay_ms(500);
        PWMDTY01=110;
        delay_ms(500);
        delay_ms(500);
        }

        }



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 马尔康县| 娄底市| 揭阳市| 闽清县| 泰安市| 五常市| 肇庆市| 太仓市| 疏附县| 苏尼特左旗| 清徐县| 石门县| 申扎县| 共和县| 格尔木市| 岑巩县| 嵩明县| 十堰市| 曲松县| 江津市| 高州市| 正镶白旗| 齐齐哈尔市| 崇礼县| 延川县| 夏津县| 卢湾区| 丘北县| 土默特右旗| 斗六市| 湖南省| 大洼县| 苍山县| 苏尼特右旗| 巴东县| 翁源县| 涪陵区| 南部县| 上思县| 防城港市| 乐至县|