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

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

?? pid.asm

?? TI公司24X系列DSP控制永磁同步電機PMSM
?? 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一区二区三区免费野_久草精品视频
97久久人人超碰| 91精品久久久久久蜜臀| 欧美日韩一区二区三区四区五区| 欧美成人精品3d动漫h| 亚洲人成伊人成综合网小说| 国产一区二区福利视频| 欧美精品一卡二卡| 中文字幕乱码久久午夜不卡| 韩国成人福利片在线播放| 欧美日韩一级黄| 亚洲三级电影网站| 成人午夜短视频| 国产日韩欧美综合在线| 蜜桃av一区二区在线观看 | 成人av网在线| 精品国产sm最大网站免费看| 亚洲a一区二区| 欧美亚洲自拍偷拍| 亚洲色图清纯唯美| 99re视频精品| 中文字幕免费不卡在线| 成人自拍视频在线观看| 日本一区二区三区在线观看| 国产在线不卡一区| 5566中文字幕一区二区电影| 亚洲高清免费在线| 欧美日韩精品欧美日韩精品 | 欧美日韩精品免费| 天堂一区二区在线| 欧美日韩欧美一区二区| 日韩精品91亚洲二区在线观看| 国产精品免费观看视频| 亚洲天天做日日做天天谢日日欢 | 国产一区视频导航| 26uuu色噜噜精品一区| 麻豆一区二区在线| 精品久久人人做人人爱| 国产一区二区在线观看免费| 337p日本欧洲亚洲大胆色噜噜| 国产真实乱对白精彩久久| 久久精品夜色噜噜亚洲aⅴ| 丁香网亚洲国际| 亚洲天堂2016| 91精品国产综合久久久久久| 蜜臀99久久精品久久久久久软件| 91精品国产综合久久精品| 奇米精品一区二区三区在线观看 | 欧洲在线/亚洲| 一卡二卡三卡日韩欧美| 日韩一区二区电影在线| 国产乱子伦视频一区二区三区| 久久精品无码一区二区三区| 97久久精品人人澡人人爽| 亚洲伊人色欲综合网| 欧美电影免费观看高清完整版在线观看| 美日韩黄色大片| 国产欧美一区视频| 欧美日韩亚洲高清一区二区| 韩国成人在线视频| 亚洲卡通动漫在线| 欧美成人高清电影在线| 91一区二区在线| 男女性色大片免费观看一区二区| 26uuu精品一区二区| 91麻豆国产香蕉久久精品| 麻豆精品在线观看| 日韩毛片精品高清免费| 91精品国产麻豆国产自产在线| 国产美女在线观看一区| 亚洲综合免费观看高清完整版在线| 日韩欧美国产午夜精品| 色综合久久久久综合体| 精品一区二区三区在线播放| 一区二区三区日韩| 国产午夜三级一区二区三| 欧美日韩精品欧美日韩精品一 | 欧美日韩国产美女| 成人永久看片免费视频天堂| 午夜影院在线观看欧美| 国产精品卡一卡二卡三| 精品三级在线观看| 欧美三级日韩三级国产三级| 成人性生交大片免费看视频在线 | 欧美男女性生活在线直播观看| av动漫一区二区| 国产自产高清不卡| 亚洲天堂福利av| 日韩精品一区二区三区三区免费 | 亚洲一二三四在线| 久久综合狠狠综合久久综合88| 在线看不卡av| 99国产精品99久久久久久| 青青草精品视频| 亚洲123区在线观看| 一区二区三区四区在线播放| 国产欧美日韩另类一区| 久久久久久久久一| 久久婷婷综合激情| 91精品国产91久久久久久最新毛片| 91麻豆123| 91蜜桃网址入口| 99国产精品久久久久久久久久久| 国产成人在线色| 韩国一区二区视频| 国内精品伊人久久久久av影院| 日韩av一区二区在线影视| 偷拍一区二区三区四区| 亚洲一区二区三区三| 亚洲国产一区二区a毛片| 亚洲精品成人a在线观看| 国产精品盗摄一区二区三区| 国产精品女主播在线观看| 欧美国产精品专区| 亚洲三级在线免费观看| 91麻豆成人久久精品二区三区| 亚欧色一区w666天堂| 一区二区三区四区中文字幕| 亚洲精品国产a| 亚洲一区二区三区在线播放| 亚洲成人免费影院| 日韩国产成人精品| 另类欧美日韩国产在线| 日韩高清在线不卡| 国产中文一区二区三区| 国产成a人亚洲精品| 91丝袜国产在线播放| 在线看不卡av| 日韩一区二区三| 久久综合色8888| 国产精品久久久久久久岛一牛影视 | 成人综合激情网| 色婷婷精品大在线视频| 欧美日韩大陆一区二区| 欧美一区午夜精品| 久久精品夜夜夜夜久久| 亚洲精品国产视频| 看片网站欧美日韩| 粉嫩av一区二区三区| 在线免费观看日本一区| 日韩网站在线看片你懂的| 久久你懂得1024| 亚洲精品综合在线| 美女性感视频久久| 99精品在线观看视频| 3atv在线一区二区三区| 欧美极品xxx| 同产精品九九九| 成人黄色777网| 4438x亚洲最大成人网| 国产精品久久看| 亚洲影视在线观看| 国产精品一区三区| 884aa四虎影成人精品一区| 日本一区二区三区电影| 亚洲黄色av一区| 国产精品一区二区果冻传媒| 欧美视频在线播放| 国产精品国产自产拍在线| 蜜臀久久久久久久| 在线精品视频一区二区| 欧美极品少妇xxxxⅹ高跟鞋| 日本欧洲一区二区| 色悠久久久久综合欧美99| 久久人人97超碰com| 日韩在线观看一区二区| 成人18精品视频| 久久婷婷综合激情| 午夜伦理一区二区| 99久久精品免费精品国产| 久久亚洲欧美国产精品乐播| 天天操天天色综合| 色噜噜狠狠成人中文综合| 国产农村妇女精品| 久久国产综合精品| 欧美日韩久久久一区| 亚洲女同ⅹxx女同tv| 1区2区3区精品视频| 亚洲五码中文字幕| 91麻豆视频网站| 国产精品无码永久免费888| 久久精品久久综合| 日韩亚洲欧美中文三级| 亚洲国产美女搞黄色| aaa欧美日韩| 国产精品区一区二区三| 国产传媒久久文化传媒| 337p日本欧洲亚洲大胆色噜噜| 天天av天天翘天天综合网| 欧美最新大片在线看| 尤物在线观看一区| 91麻豆视频网站| 一区二区三区四区在线| 91丨porny丨中文| 一区二区国产盗摄色噜噜| 色婷婷久久久久swag精品| 一区二区三区日韩精品视频| 91国偷自产一区二区开放时间| 亚洲乱码一区二区三区在线观看| 95精品视频在线| 亚洲综合在线第一页|