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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pid.asm

?? TI公司24X系列DSP控制無刷直流電機
?? ASM
字號:
;=====================================================================================
; File name:        PID.ASM                     
;                    
; Originator:	Digital Control Systems Group
;			Texas Instruments
;
; Description:                                 
; Performs PID and feed forward control 
;
;=====================================================================================
; History:
;-------------------------------------------------------------------------------------
; 9-15-2000	Release	Rev 1.00
;-------------------------------------------------------------------------------------
; C prototype : int pid(struct pid_data pointer *);  
;===========================================================================
;
; History:                
; __________________________________________________________________________
; Date of Mod   |                     DESCRIPTION
;   ------------|-----------------------------------------------------------
;               |
;                |
;                |
;                |
;===========================================================================
; The PID and Feed-forward controller operates on a structure defined as         
; follows:
; [un_H,un_L,en,en-1,en-2,K0,K1,K2,Kx,Kf,rn,sat_upper,sat_lower,output]
; This is fourteen elements in all.
; If any func *s are added they should be added in at the end, or else the pid_ff
; called with a * to the first data element.
;



        
                .def        _pid_ff

_pid_ff:             POPD        *+
                SAR        AR0,*+
                SAR        AR1,*
                LARK        AR0,1
                LAR        AR0,*0+,AR0
;===============================================================================
                SETC        OVM
                SPM        1        
                clrc    SXM                ; ARP=AR0, AR0->FR0.
;-------------------------------------------------------------------------------
                SBRK        #3                ; Point to ARG1 (in this pointer to 
                                        ; source struct.
                                        ; AR0=(FR0)-3
                                        ; ARP=AR0, AR0->FR0-3.
;-------------------------------------------------------------------------------
                LAR        AR3,*,AR3           ; point AR3 to struct.
                                        ; ARP=AR3, AR0->FR0-3, AR3->un_H.
;-------------------------------------------------------------------------------
                ADRK        #7                ; move AR3 to point to K2
                                        ; ARP=AR3, AR0->FR0-3, AR3->K2.
;-------------------------------------------------------------------------------
                MAR         *,AR0                ; ARP=AR0 to get the pointer again.
                                        ; ARP=AR0, AR0->FR0-3, AR3->K2.
;-------------------------------------------------------------------------------
                LAR        AR2,*,AR2        ; Get the ptr to struct pid in AR2.
                                        ; ARP=AR2, AR0->FR0-3, AR2->un_H,AR3->K2
;-------------------------------------------------------------------------------
                LACC        *+,16                ; get un_H in ACCH
                                        ; ARP=AR2, AR0->FR0-3, AR2->un_L,AR3->K2
;-------------------------------------------------------------------------------
                ADD        *+                ; get un_L in ACCL
                                        ; ARP=AR2, AR0->FR0-3, AR2->en,AR3->K2
;-------------------------------------------------------------------------------
                ADRK        #2                ; point AR2 to en-2.
                                        ; ARP=AR2, AR0->FR0-3, AR2->en-2,AR3->K2
;-------------------------------------------------------------------------------
                LT        *-,AR3                ; get en-2 in TREG
                                        ; ARP=AR3, AR2->en-1,AR3->K2, AR0->FR0-3
;-------------------------------------------------------------------------------
                MPY         *-,AR2                ; get product (en-2)*K2
                                        ; ARP=AR2, AR2->en-1,AR3->K1, AR0->FR0-3
;-------------------------------------------------------------------------------
                LTD        *-,AR3                ; get en-1 and point to en
                                        ; also en-1 is copied to en-2.
                                        ; **ALSO **
                                        ; add product to un_H:un_L.
                                        ; ARP=AR3, AR2->en ,AR3->K1, AR0->FR0-3
;-------------------------------------------------------------------------------
                MPY        *-,AR2                ; multiply by K1 and move AR3 to K0
                                        ; ARP=AR2, AR2->en,AR3->K0, AR0->FR0-3
;-------------------------------------------------------------------------------
                LTD        *-,AR3                ; load TREG with en, copy en to en-1
                                        ; ARP=AR3 pointing to K0
                                        ; AR2 now points to un_L
                                        ; **ALSO **
                                        ; add product to un_H:un_L.
                                        ; ARP=AR3, AR2->un_L,AR3->K0, AR0->FR0-3
;-------------------------------------------------------------------------------
                MPY        *,AR2                ; get product K0.en
                                        ; ARP=AR2, AR2->un_L,AR3->K0, AR0->FR0-3
;-------------------------------------------------------------------------------
                APAC                        ; add to acc
;-------------------------------------------------------------------------------
                ; Acc now has un=un-1 + K0.en + K1 en-1 + K2 en-2.
                ; AR3 points to K0, AR2 points to un_L
                ; ARP=AR3.
;-------------------------------------------------------------------------------
                SACL        *-                ; store lower un-sat'ed sum in un_L                
                                        ; ARP=AR2, AR2->un_H,AR3->K0, AR0->FR0-3
;-------------------------------------------------------------------------------
                SACH        *                ; store upper un-sat'ed sum in un_H
                                        ; ARP=AR2, AR2->un_H,AR3->K0, AR0->FR0-3
;-------------------------------------------------------------------------------

                ; AR2 points to un_H


       ;         B       _PID_DIAG_EXIT

_PID_SAT_CHK:
                LACC        *,16,AR3        ; get upper part in ACC_L
                ADRK        #6                ; now AR3 points to upper_limit.
                
                SUB        *,16
        
        ; do un - upper limit, this should NOT be ve.
        ; if so it would exceed limits and must be clamped.
        ; if less than 0 or equal to zero, branch to skip clamping.

                BCND        _PID_PLUS_OK,LEQ
                
_PID_PLUS_CLAMP:
                
                LACL        *+,AR2                ; get upper limit.
                                        ; inc AR3 to point to lower limit.
                                        ; 
                SACL        *+                ; store in un_H
                LACK         #0                ; 
                SACL        *-                ; AR2 points once again to un_H

                B        _PID_CLAMPING_DONE
                
_PID_PLUS_OK:

_PID_NEG_CHK:
                MAR        *+,AR2                ; incoming ARP=AR3 pointing to upper_limit
                                        ; inc AR3 to point to lower limit.        
                                        ; AR2 points to un_H
                                        
                LACC        *,16,AR3        ; get un_H

                SUB        *,16                
                
        ; do un_h -lower limit, this should not be negative.
        ; so if it went lower than the limit then must be clamped to lower limit.
        ; if greater than or equal to zero skip clamp.


                BCND        _PID_NEG_OK,GEQ
                
_PID_NEG_CLAMP:

                LACL        *,AR2                ; get lower limit.                
                SACL        *+                ; store lower limit to un_H
                LACK        #0                ;
                SACL        *-,AR3                ; store zero for un_L
                                        ; ARP=AR3
                
                ; AR2 still points to un_H
                
_PID_NEG_OK:        
_PID_CLAMPING_DONE:

                ; At this point the state is :
                ; un_H:un_L clamped !!
                ; ARP=AR3
                ; AR2->un_H
                ; AR3->lower limit
                
                SBRK        #3                ; point AR3 to Kf.
                
                MAR        *,AR2                ; ARP=AR2->un_H
                
                LACC        *+,16                ; get un_H in ACCH
                ADD        *                ; get un_L in ACCL.

                                        ; AR2 now points to un_L
                ADRK        #9                ; AR2 now points to rn

                LT        *,AR3                ; get rn in TREG.
                MPY        *-,AR2                 ; multiply by Kf.
                                        ; dec AR3 to point to Kx.
                                        

                APAC                        ; get PID+FF.

                ADRK        #3                ; point AR2 to output.
                
                SACH        *,AR3                ; store u_H in output.

                LAR        AR3,*,AR2        ; get Kx in AR3
                                        ; ARP=AR2.
                
                LACK        #0                ; get zero in acc.


_PID_MULT_LOOP:
                ADD        *,16,AR3        ; add the output to the acc
                                        ; make current AR=AR3 for BANZ loop.

                BANZ        _PID_MULT_LOOP,*-,AR2
                
                                        ; here ARP=AR2

                SACH        *                ; store multiplied output in 'output'



_PID_DIAG_EXIT:        

                LACL        *,AR1                ; Return 'output' in accumulator.
                                        ; ARP=AR1 in prep for return
                CLRC        OVM
                SPM        0

;===========================================================================
                SBRK        2
                LAR        AR0,*-
                PSHD        *
                RET



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美成人一区| 在线观看亚洲一区| 亚洲一区免费在线观看| 日韩一区二区精品在线观看| 99久久精品免费精品国产| 蜜臀久久99精品久久久久宅男 | 欧美日韩美女一区二区| 国产资源精品在线观看| 亚洲成av人影院| 国产精品传媒视频| 久久久久久久久久美女| 制服视频三区第一页精品| 色婷婷久久久亚洲一区二区三区 | 亚洲国产日产av| 一区二区三区免费看视频| 国产精品久久久久久亚洲毛片| 日韩视频免费直播| 欧美一区二区三区在线观看| 欧美伊人久久久久久久久影院| 一本久道中文字幕精品亚洲嫩 | av亚洲精华国产精华精| 国产98色在线|日韩| 国产成人av资源| www.在线成人| 欧美这里有精品| 欧美日韩国产在线观看| 欧美片在线播放| 欧美成人高清电影在线| 欧美一级片在线观看| 日韩欧美成人激情| 国产欧美一区二区精品仙草咪| 国产日产欧美精品一区二区三区| 中文字幕av一区二区三区免费看| 国产精品久久二区二区| 亚洲一区在线观看网站| 日本美女视频一区二区| 粉嫩av一区二区三区| 欧美日韩激情在线| 亚洲精品在线免费观看视频| 欧美国产精品一区二区| 亚洲一级二级在线| 国产精品88av| 色综合色狠狠综合色| 欧美性猛交xxxx黑人交| 精品国产伦一区二区三区观看方式| 国产日韩欧美一区二区三区综合 | 国产精品久久久久久久久免费桃花| 亚洲欧美国产高清| 国产一区二区三区免费观看| 色综合久久六月婷婷中文字幕| 日韩欧美色电影| 一区二区三区四区亚洲| 国产一区二区精品久久| 欧美另类videos死尸| 一色桃子久久精品亚洲| 久久国产尿小便嘘嘘| 欧美日本韩国一区| 亚洲精品乱码久久久久久| 国产传媒欧美日韩成人| 欧美成人女星排名| 蜜桃视频在线观看一区| 欧美久久久久久久久中文字幕| 亚洲人午夜精品天堂一二香蕉| 激情文学综合插| 精品美女一区二区| 午夜国产不卡在线观看视频| 成人免费一区二区三区在线观看| 经典三级视频一区| 日韩精品一区二区三区中文不卡| 日韩av不卡一区二区| 欧美日韩国产小视频在线观看| 亚洲人成在线观看一区二区| 国产黄色精品网站| 欧美国产精品专区| 成人av片在线观看| 亚洲人成7777| 在线免费视频一区二区| 五月婷婷久久丁香| 欧美精品xxxxbbbb| 精品制服美女久久| 久久丝袜美腿综合| 色综合夜色一区| 五月天欧美精品| 欧美精品一区二区久久久| 成人精品视频一区二区三区尤物| 亚洲视频在线观看一区| 欧美日韩一区二区三区视频| 蜜桃久久av一区| 成人欧美一区二区三区小说| 91免费视频观看| 免费看日韩精品| 亚洲国产高清不卡| 在线播放91灌醉迷j高跟美女 | 欧美色网站导航| 久久国内精品视频| 国产精品久久三区| 欧美成人精品福利| 91丨九色porny丨蝌蚪| 日韩国产在线观看一区| 国产精品视频一二| 日韩欧美成人一区二区| 99re66热这里只有精品3直播 | 亚洲天堂精品在线观看| 日韩欧美的一区二区| 91福利区一区二区三区| 福利电影一区二区三区| 日韩和的一区二区| 亚洲综合视频在线| 国产亚洲欧美一级| 欧美成人猛片aaaaaaa| 欧美日韩亚洲综合在线| 99综合电影在线视频| 久久精品72免费观看| 亚洲第一在线综合网站| 夜夜嗨av一区二区三区中文字幕| 国产午夜亚洲精品理论片色戒| 精品人在线二区三区| 欧美xfplay| 日韩美女天天操| 久久嫩草精品久久久久| 日韩一级完整毛片| 欧美一级免费观看| 欧美成人a∨高清免费观看| 欧美va亚洲va香蕉在线| 日韩你懂的在线观看| 精品国产成人在线影院| 久久综合久久综合九色| 26uuu国产一区二区三区| 久久久精品综合| 中文子幕无线码一区tr| 亚洲欧洲av一区二区三区久久| 最近中文字幕一区二区三区| 亚洲综合区在线| 蜜桃av一区二区三区电影| 激情欧美一区二区三区在线观看| 国产麻豆精品一区二区| 99视频国产精品| 欧美日韩精品一区二区三区| 日韩免费观看高清完整版在线观看| 久久久精品天堂| 亚洲伊人色欲综合网| 蜜乳av一区二区| 99久久免费国产| 欧美日韩mp4| 中文一区二区在线观看| 一区二区三区四区高清精品免费观看| 亚洲高清视频的网址| 国产在线精品免费av| 95精品视频在线| 精品成人a区在线观看| 尤物在线观看一区| 国产成人自拍网| 在线综合亚洲欧美在线视频| 国产精品久久久久久久久免费桃花 | 欧美激情中文字幕一区二区| 一二三区精品福利视频| 国产91精品露脸国语对白| 777色狠狠一区二区三区| 国产精品久久久久一区二区三区 | 日韩一区精品字幕| 色综合天天综合狠狠| 亚洲国产激情av| 国产麻豆午夜三级精品| 91精品国模一区二区三区| 一区二区久久久久久| av亚洲精华国产精华| 国产精品网站导航| 国产成人在线视频免费播放| 精品国产区一区| 国模一区二区三区白浆| 欧美电视剧在线看免费| 亚洲第一av色| 欧美日韩在线播| 天涯成人国产亚洲精品一区av| 99久久婷婷国产综合精品| 国产精品乱码一区二三区小蝌蚪| 美女视频黄免费的久久 | 在线观看欧美日本| 亚洲精品国产高清久久伦理二区 | 成人国产精品免费观看视频| 久久精品免视看| 国产真实精品久久二三区| 精品国产91久久久久久久妲己| 国产在线视频一区二区三区| 久久综合九色综合97婷婷女人| 国产尤物一区二区| 国产精品福利影院| 欧美在线影院一区二区| 日本vs亚洲vs韩国一区三区二区 | 日本不卡一区二区三区高清视频| 911精品产国品一二三产区| 国产一区二区视频在线| 国产精品视频免费| 欧美日韩中字一区| 精品一二三四区| 亚洲免费大片在线观看| 日韩欧美一二三| 色噜噜狠狠色综合欧洲selulu| 日韩一区精品视频| 国产精品不卡一区|