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

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

?? pid.asm

?? TI的digital motor control lib的源代碼。了解TI的編程規范
?? 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.0
;-------------------------------------------------------------------------------------
; 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一区二区三区免费野_久草精品视频
国产成人精品午夜视频免费| 日韩欧美视频在线| 国产精品色噜噜| 精品一区二区免费视频| 日韩一区二区免费在线电影| 亚洲va欧美va国产va天堂影院| 日本道色综合久久| 久久综合九色欧美综合狠狠| 麻豆精品新av中文字幕| 日韩欧美一区二区在线视频| 免费欧美在线视频| 精品国产免费人成在线观看| 狠狠色综合播放一区二区| 久久综合资源网| 日韩二区在线观看| 欧美成人精品福利| 国产一区二区在线电影| 国产欧美精品日韩区二区麻豆天美| 国产成人综合在线播放| 国产精品不卡在线| 91视频在线看| 日韩国产精品91| 日韩精品专区在线影院观看| 午夜日韩在线观看| 欧美卡1卡2卡| 久久69国产一区二区蜜臀| 久久久国产一区二区三区四区小说| 国产成人综合视频| 亚洲精品视频免费看| 欧美日韩免费电影| 韩国av一区二区三区在线观看 | 日韩精品国产精品| 日韩精品一区二区三区视频播放 | 亚洲嫩草精品久久| 欧美精品丝袜久久久中文字幕| 久久精品国产在热久久| 亚洲国产精品99久久久久久久久| 91免费看片在线观看| 香蕉乱码成人久久天堂爱免费| 日韩三级中文字幕| 成人app软件下载大全免费| 亚洲综合偷拍欧美一区色| 欧美精品成人一区二区三区四区| 韩日精品视频一区| 亚洲美女视频在线观看| 日韩免费高清视频| 国产在线播放一区二区三区| 中文字幕欧美区| 欧美高清视频不卡网| 国产iv一区二区三区| 亚洲一区免费观看| 久久久蜜臀国产一区二区| 欧美亚洲禁片免费| 国产91对白在线观看九色| 亚洲一区二区三区四区在线免费观看 | 国产成人在线网站| 视频一区欧美精品| 国产精品久久三| 日韩午夜小视频| 91福利社在线观看| 懂色av一区二区三区免费观看| 天涯成人国产亚洲精品一区av| 国产精品三级久久久久三级| 精品久久久久久久人人人人传媒| 在线观看视频91| 成人动漫精品一区二区| 国产综合色精品一区二区三区| 天天色天天操综合| 亚洲视频狠狠干| 精品久久久久99| 666欧美在线视频| 色综合天天性综合| 国产精品77777| 激情综合网av| 裸体在线国模精品偷拍| 亚洲成人黄色小说| 国产精品日韩成人| 久久久美女艺术照精彩视频福利播放 | 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 国产福利一区二区三区在线视频| 日本最新不卡在线| 亚洲成av人在线观看| 综合久久一区二区三区| 欧美高清在线精品一区| 精品国产乱码久久久久久老虎| 欧美精品 国产精品| 欧美色图第一页| 欧美性一二三区| 在线观看欧美黄色| 欧美色图天堂网| 欧美人体做爰大胆视频| 91丨porny丨首页| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 亚洲一区电影777| 玉米视频成人免费看| 亚洲人成网站影音先锋播放| 国产精品成人一区二区三区夜夜夜 | 亚洲欧美另类图片小说| 中文字幕在线不卡一区| 精品国产1区二区| 欧美videos大乳护士334| 日韩女优电影在线观看| 久久久久久久综合狠狠综合| xvideos.蜜桃一区二区| 国产亚洲欧美一级| 国产精品素人一区二区| 日韩毛片视频在线看| 亚洲欧美日韩综合aⅴ视频| 亚洲一区二区在线免费看| 中文一区一区三区高中清不卡| 国产色产综合产在线视频| 久久精品欧美一区二区三区麻豆 | 麻豆精品视频在线观看视频| 不卡电影一区二区三区| 欧美日韩免费观看一区三区| 精品成人在线观看| 一区二区三区中文免费| 韩国在线一区二区| 欧美视频日韩视频在线观看| 精品国产一区二区国模嫣然| 尤物视频一区二区| 国产精品一二三四| 欧美日韩视频专区在线播放| 久久精品日产第一区二区三区高清版| 亚洲小说欧美激情另类| 国产一区二区三区在线观看免费视频| 色老头久久综合| 国产午夜精品美女毛片视频| 天堂成人国产精品一区| aaa亚洲精品| xfplay精品久久| 婷婷激情综合网| 日本电影亚洲天堂一区| 国产日韩欧美亚洲| 麻豆91精品91久久久的内涵| 欧美伊人精品成人久久综合97| 国产三级一区二区| 久久99久久久欧美国产| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 国产偷国产偷精品高清尤物 | 成人涩涩免费视频| 欧美成人r级一区二区三区| 一区二区三区成人在线视频| 成人深夜福利app| 久久久久久久网| 极品销魂美女一区二区三区| 欧美久久久久久久久久| 亚洲精品乱码久久久久久日本蜜臀| 国产成人亚洲精品青草天美| 欧美tickling挠脚心丨vk| 午夜欧美在线一二页| 在线免费观看视频一区| 中文字幕佐山爱一区二区免费| 成人av影视在线观看| 欧美国产亚洲另类动漫| 国产精品一区三区| 亚洲精品在线免费观看视频| 奇米四色…亚洲| 欧美一区二区三区四区久久| 男女激情视频一区| 日韩一级成人av| 美日韩一区二区三区| 日韩精品专区在线影院重磅| 蜜桃av一区二区| 欧美精品一区二区三区很污很色的| 美女mm1313爽爽久久久蜜臀| 日韩写真欧美这视频| 久久99精品视频| 26uuu色噜噜精品一区| 国产乱国产乱300精品| www久久精品| 国产福利91精品一区| 中文一区二区完整视频在线观看| 成人性生交大片免费看在线播放| 中文字幕的久久| 97久久超碰精品国产| 亚洲综合一区在线| 欧美理论在线播放| 久久99蜜桃精品| 国产精品网站一区| 色婷婷综合视频在线观看| 亚洲精品乱码久久久久久黑人| 欧美在线免费视屏| 蜜臀av一级做a爰片久久| 26uuu久久天堂性欧美| 成人精品鲁一区一区二区| 亚洲日本护士毛茸茸| 欧美色综合久久| 久久成人免费网站| 国产精品污网站| 日本二三区不卡| 久久电影网站中文字幕 | 久久久久久电影| 91网上在线视频| 午夜国产精品影院在线观看| 精品久久久久香蕉网| 一本到三区不卡视频| 日韩二区三区四区| 亚洲国产精品二十页| 欧美久久一二区|