在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 步進(jìn)電機(jī)的調(diào)焦系統(tǒng)設(shè)計(jì)

            步進(jìn)電機(jī)的調(diào)焦系統(tǒng)設(shè)計(jì)

            作者: 時(shí)間:2016-12-21 來(lái)源:網(wǎng)絡(luò) 收藏

            3 軟件設(shè)計(jì):

            由于電機(jī)的運(yùn)行和轉(zhuǎn)動(dòng)步數(shù)以及兩步之間間隔時(shí)間有關(guān)系,故采用計(jì)時(shí)器計(jì)時(shí)的方法來(lái)計(jì)算時(shí)間,F(xiàn)240初始化程序如下:

            void Initcpu(void) //初始化F240程序
            { *WDCR=0x6f; // 禁止自帶的看門(mén)狗功能;
            *CKCR1=0x69; // 外部輸入晶振為20MHZ,F(xiàn)240工作在20MHZ;
            *CKCR0=0xc3; // 系統(tǒng)時(shí)鐘為10MHZ;
            *SYSCR=0x4000; } // F240輸出頻率CLKOUT=IOPC1(I/O管腳);

            F240初始化后,計(jì)時(shí)器的基本計(jì)時(shí)時(shí)間為0.1?s,考慮到F240定時(shí)器是16位計(jì)數(shù)器,這難以滿(mǎn)足計(jì)算長(zhǎng)時(shí)間的需求,所以采用通過(guò)計(jì)算進(jìn)入定時(shí)器中斷的次數(shù)來(lái)計(jì)算長(zhǎng)時(shí)間的方法。例如設(shè)置定時(shí)器周期寄存器值為800即*T1PR=800,那么進(jìn)一次定時(shí)器中斷時(shí)間為800*0.1= 80?s如果計(jì)時(shí)為1s的話(huà),則只需進(jìn)12500次中斷即可,以此類(lèi)推;故定義的數(shù)組內(nèi)容表示如下:

            int table[ ]= { 25,800,255, //第1行
            . . . . . . } //第n行

            其中25為電機(jī)步數(shù);800為定時(shí)器周期寄存器值;255每?jī)刹介g所要進(jìn)入定時(shí)器中斷的次數(shù)。實(shí)現(xiàn)準(zhǔn)確地控制步進(jìn)電機(jī)控制器關(guān)鍵在于由F240 I/O口產(chǎn)生規(guī)定的脈沖信號(hào),提供給步進(jìn)電機(jī)控制器從而驅(qū)動(dòng)步進(jìn)電機(jī)正確轉(zhuǎn)動(dòng),程序中包括F240初始化、電機(jī)正轉(zhuǎn)、等待、電機(jī)反轉(zhuǎn)幾個(gè)程序模塊。程序流 程圖如圖2所示:


            圖2 程序流程圖

            以下是實(shí)現(xiàn)電機(jī)正轉(zhuǎn)的程序。程序中變量解釋?zhuān)簊tep:用于存儲(chǔ)數(shù)組中電機(jī)步數(shù);every step:用于存儲(chǔ)數(shù)組中每?jī)刹介g所要進(jìn)定時(shí)中斷的次數(shù);flag:數(shù)組行數(shù)標(biāo)志(程序假設(shè)需正轉(zhuǎn)36組)。

            void interrupt INT2_ISR()
            { while (*EVIVRA==0x0027) //是否是定時(shí)器中斷
            { if(flag<36) //用來(lái)完成正轉(zhuǎn)
            {
            if (steptotal==step) //是否走完數(shù)組每行規(guī)定的步數(shù)
            { flag++; //數(shù)組行標(biāo)志加1
            steptotal=0; //電機(jī)轉(zhuǎn)動(dòng)步數(shù)清零
            step=table[++j]; //更新電機(jī)運(yùn)行步數(shù)數(shù)據(jù)
            *T1PR=table[++j]; //更新定時(shí)器定時(shí)周期
            everystep=table[++j]; //更新需要進(jìn)入定時(shí)器中斷次數(shù)
            *T1CNT=0; } //從零開(kāi)始計(jì)時(shí),啟動(dòng)定時(shí)器
            i++; //循環(huán)標(biāo)志位加1
            if(i==1) *PADATDIR=0xff05; // 提供下降沿,正轉(zhuǎn),不脫機(jī)
            else{ if (i==everystep)
            { i=0;
            steptotal++; } //電機(jī)每轉(zhuǎn)一步標(biāo)志位加1
            else
            *PADATDIR=0xff04; //CP腳為高電平為產(chǎn)生下降沿準(zhǔn)備,正轉(zhuǎn),不脫機(jī)
            }
            *IMR=0x02; //開(kāi)定時(shí)器中斷
            enable(); //開(kāi)啟F240總中斷
            }
            }

            4 實(shí)驗(yàn)結(jié)果及其注意事項(xiàng)

            電機(jī)轉(zhuǎn)動(dòng)的步數(shù)和時(shí)間坐標(biāo)都是由主機(jī)端通過(guò)MATLAB仿真取得的,因此實(shí)際調(diào)焦曲線(xiàn)的與理想曲線(xiàn)的擬合程度大大提高了;步進(jìn)電機(jī)控制器采用四相八拍運(yùn)行 方式,并且由DSP進(jìn)行控制,步進(jìn)機(jī)精確地按照步進(jìn)角(0.9度)轉(zhuǎn)動(dòng)。實(shí)際應(yīng)用該調(diào)焦系統(tǒng)調(diào)整攝影鏡頭,拍攝運(yùn)動(dòng)軌跡已知的目標(biāo),達(dá)到了滿(mǎn)意的效果。

            定時(shí)器時(shí)間的準(zhǔn)確計(jì)算對(duì)高精度地測(cè)量一些物理量是非常重要的。當(dāng)需要定時(shí)器計(jì)算的時(shí)間比較長(zhǎng)時(shí),定時(shí)器計(jì)數(shù)還不夠,這時(shí)就需要利用定時(shí)器自身的中斷,即短時(shí)間定時(shí)一到就進(jìn)入定時(shí)器中斷服務(wù)子程序,利用進(jìn)入的次數(shù)來(lái)達(dá)到計(jì)時(shí)的目的。

            5 結(jié)束語(yǔ)

            本文對(duì)基于DSPTMS320F240利用步進(jìn)驅(qū)動(dòng)器UP-4HB03M控制步進(jìn)電機(jī)進(jìn)行了研究,改進(jìn)了傳統(tǒng)的工程中調(diào)焦方式,精度大大提高, 經(jīng)測(cè)試系統(tǒng)運(yùn)行穩(wěn)定,由于DSP操作方便,而且采用C語(yǔ)言方式編寫(xiě),易于日后的代碼修改和程序移植。


            上一頁(yè) 1 2 下一頁(yè)

            評(píng)論


            技術(shù)專(zhuān)區(qū)

            關(guān)閉