• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 用DSP實現(xiàn)增量式光電編碼器的細(xì)分

    用DSP實現(xiàn)增量式光電編碼器的細(xì)分

    作者: 時間:2010-12-22 來源:網(wǎng)絡(luò) 收藏

    SACL Y1 ; 得到y(tǒng)1

    LACL X2;

    SUB #JUNZHI(2.5V);

    ABS

    SACL Y2 ; 得到y(tǒng)2

    SUB Y1 ;

    SACL Y ; 得到Y(jié)=y2-y1值,保存 ;用dsp中計數(shù)器T4記卦限

    BCND ss,NEQ

    Lacl y1

    BCND ss,NEQ

    Lacl y2

    BCND ss,NEQ ;若U=0,卦限計數(shù)器計數(shù)

    set t4clkin ; 為計數(shù)器提供脈沖

    ss: LACL y

    BCND DEVISION,GEQ ; 判斷卦限,y2>=y1 時,直接y1/y2;否則y2/y1,除數(shù)變被除數(shù)

    JIAOHUAN: LACC y1 ; y1和y2交換

    SACL TEMP_AD ;

    LACL y2 ;

    SACL y1 ;

    LACC TEMP_AD ;

    SACL y2 ; y2/y1 ; 毫秒為Q8格式

    DEVISION LACC R1SIN ,6;;;;取分子并左移6位;

    RPT #15 ; 后面的指令執(zhí)行15+1次。

    SUBC R2COS ;16 CYCLE DIVIDED LOOP

    ; .ACC中的數(shù)據(jù)減去Demon 減10次,直到被減數(shù)小于0

    SACL QUOT ; 得到商

    SACH REMAIN ; 得到余數(shù)

    LACC REMAIN; 取余數(shù)后再除

    RPT #13 ; 后面的指令執(zhí)行14次。

    SUBC DENOM;

    AND QUOT;

    ; SACL QUOT ;;;保存商。得到十位地址信號。用此信號得到RAM中對應(yīng)地址細(xì)分值保存在DSP的sram中)

    ADD #0800h ;SRAM 初始地址為#0800H(

    SAL XIFEN_ADR ;

    LACC #XIFEN_ADR

    ADD #0800h ;SRAM 初始地址為#0800H

    SAL XIFEN_ADR ;

    LACL Y ;Y2>=Y1 ;

    BCND yy2 ,GEQ

    LACL #05h ;設(shè)編碼最小柵格為40秒,一個卦限為5秒。

    SUB #XIFEN_ADR

    B YY

    YY2: LACC #XIFEN_ADR

    YY: Ldp #0eah ;

    LT t4cnt ;卦限值

    MPY #05h ; 一個卦限相差5秒,

    APAC 得到精確細(xì)分值

    根據(jù)得到的細(xì)分值與整周期值相加就可以得到對應(yīng)的光柵編碼信號。

    當(dāng)速度特別慢時,用軟件判卦限會出現(xiàn)重復(fù)計數(shù)。也就是一個細(xì)分周期里,電機(jī)轉(zhuǎn)動的位移小于20/1024秒,如下圖。卦限函數(shù)使得卦限增1,產(chǎn)生錯誤。我們要舍棄這個計數(shù)。

    為了解決這個問題,我們把軟件的判卦限程序改以下:用一個flaggx標(biāo)志來表示卦限信號是否剛記過。剛剛記過,就舍棄掉。改正的程序流程如下圖。

    接地電阻相關(guān)文章:接地電阻測試方法




    評論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 广南县| 绵竹市| 新绛县| 胶南市| 新绛县| 台前县| 祁连县| 商南县| 高阳县| 同仁县| 霍州市| 九龙县| 延津县| 拜泉县| 遵义县| 南召县| 隆化县| 义乌市| 邵阳市| 兴安盟| 宁乡县| 祁门县| 雷州市| 临邑县| 青州市| 鞍山市| 广南县| 微山县| 迁西县| 射洪县| 松江区| 盐源县| 津市市| 清涧县| 柞水县| 巴林左旗| 共和县| 广汉市| 保靖县| 五原县| 安西县|