新聞中心

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

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

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

        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中對應地址細分值保存在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 ;設編碼最小柵格為40秒,一個卦限為5秒。

        SUB #XIFEN_ADR

        B YY

        YY2: LACC #XIFEN_ADR

        YY: Ldp #0eah ;

        LT t4cnt ;卦限值

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

        APAC 得到精確細分值

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

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

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

        接地電阻相關文章:接地電阻測試方法




        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 桂阳县| 嘉禾县| 治多县| 濮阳市| 甘孜县| 车险| 合阳县| 三河市| 冷水江市| 定日县| 德清县| 钟祥市| 东莞市| 扎囊县| 吉隆县| 兴业县| 耒阳市| 从江县| 桂林市| 潢川县| 广丰县| 万荣县| 盐山县| 阿图什市| 肥乡县| 秦安县| 中卫市| 夏邑县| 稷山县| 开封县| 恭城| 明水县| 资源县| 牡丹江市| 乌恰县| 新巴尔虎右旗| 霍城县| 杭锦旗| 崇礼县| 绥中县| 浦江县|