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

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

?? pid.asm

?? 無刷直流電機的無傳感器控制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一区二区三区免费野_久草精品视频
一本色道久久综合亚洲91| 久久精品视频免费观看| 欧美视频中文一区二区三区在线观看| 高清久久久久久| 丁香亚洲综合激情啪啪综合| 成人自拍视频在线观看| 丁香五精品蜜臀久久久久99网站| 国产99久久久国产精品免费看| 成人免费高清在线| bt7086福利一区国产| 91年精品国产| 91福利资源站| 欧美三级一区二区| 欧美一区二区三区小说| 日韩精品一区二区三区四区视频 | 欧美中文字幕一区| 欧美在线观看一区| 欧美高清视频不卡网| 56国语精品自产拍在线观看| 日韩欧美国产wwwww| 久久综合给合久久狠狠狠97色69| 国产欧美日韩久久| 中文字幕一区二区三区不卡在线 | 热久久久久久久| 紧缚捆绑精品一区二区| 国产麻豆视频精品| 97精品久久久久中文字幕| 色老综合老女人久久久| 69堂成人精品免费视频| 精品国产乱码久久久久久免费| 国产清纯白嫩初高生在线观看91| 日韩美女啊v在线免费观看| 亚洲国产aⅴ天堂久久| 久久国产精品区| 成年人网站91| 欧美丰满嫩嫩电影| 国产精品视频线看| 洋洋成人永久网站入口| 久久国产乱子精品免费女| www.成人网.com| 5566中文字幕一区二区电影| 日本一区二区三区四区 | 国产在线视视频有精品| 91小宝寻花一区二区三区| 7777精品伊人久久久大香线蕉完整版| 久久久国产精品麻豆| 亚洲综合一区二区三区| 国内精品伊人久久久久av影院| 91在线免费视频观看| 欧美一区二区三区视频在线| 国产精品嫩草影院com| 亚洲1区2区3区视频| 国产精品一区免费视频| 欧美午夜不卡视频| 欧美激情一区在线| 亚洲高清不卡在线| 高清av一区二区| 欧美精品第1页| 中文字幕一区二区三区在线不卡| 免费三级欧美电影| 91在线看国产| 久久久蜜桃精品| 爽好久久久欧美精品| 成人一级片网址| 欧美精品一区二区高清在线观看| 一区二区三区不卡在线观看| 国产一区二区三区四区五区美女| 欧美无砖砖区免费| 国产精品国产成人国产三级| 久久精品国产免费| 欧美丰满嫩嫩电影| 一区二区三区**美女毛片| 成人一区二区三区视频在线观看| 欧美一个色资源| 亚洲电影视频在线| 99久久精品国产精品久久| 26uuu欧美| 日产国产高清一区二区三区| 日本韩国一区二区三区视频| 中国av一区二区三区| 国产一区二区三区久久悠悠色av| 欧美一级黄色大片| 亚洲va天堂va国产va久| 色噜噜狠狠成人中文综合| 国产精品久久久久天堂| 国产九色sp调教91| 精品国产乱码91久久久久久网站| 舔着乳尖日韩一区| 在线观看亚洲精品| 亚洲男人的天堂在线aⅴ视频| 成人高清免费在线播放| 欧美高清在线精品一区| 国产一级精品在线| 26uuu精品一区二区| 久久精品久久综合| 欧美大白屁股肥臀xxxxxx| 热久久一区二区| 日韩午夜激情视频| 免费精品99久久国产综合精品| 91精品久久久久久蜜臀| 日韩av一二三| 欧美一区二区三区在线电影| 日本欧美一区二区| 日韩一区二区三区高清免费看看| 日韩 欧美一区二区三区| 91精品在线一区二区| 日本欧美一区二区| 日韩精品一区二区三区蜜臀 | 欧美精品一二三区| 亚洲va欧美va天堂v国产综合| 欧美色综合网站| 日本aⅴ免费视频一区二区三区| 欧美精品欧美精品系列| 美女任你摸久久| 欧美va亚洲va香蕉在线| 国内外精品视频| 亚洲国产精品二十页| 色综合久久中文字幕| 一区二区三区丝袜| 欧美放荡的少妇| 精品亚洲国内自在自线福利| 久久亚区不卡日本| 国产成人精品影视| 亚洲欧美日韩久久| 欧美日本一区二区三区四区| 麻豆精品在线看| 国产欧美综合在线观看第十页| 99精品视频一区二区| 亚洲chinese男男1069| 精品国内二区三区| 成人午夜电影久久影院| 一区二区高清视频在线观看| 欧美一区二区播放| 国产精品亚洲午夜一区二区三区 | 在线不卡中文字幕播放| 久久精品久久精品| 国产精品福利电影一区二区三区四区| 91福利视频久久久久| 免费看日韩精品| 中文文精品字幕一区二区| 日本高清无吗v一区| 久久99精品久久久| 亚洲日本va午夜在线电影| 在线不卡中文字幕播放| 国产成人自拍高清视频在线免费播放 | 欧美激情在线免费观看| 欧美影院午夜播放| 国内精品免费在线观看| 日韩伦理av电影| 日韩亚洲欧美高清| 91影视在线播放| 美女一区二区在线观看| 国产精品不卡一区| 日韩欧美国产综合在线一区二区三区| 不卡大黄网站免费看| 日韩中文欧美在线| 中文字幕在线一区免费| 欧美一区二区三区思思人| av中文字幕一区| 久久99精品国产.久久久久久 | 99久久国产综合色|国产精品| 日韩和欧美一区二区三区| 中文字幕国产一区二区| 91精品国产一区二区人妖| 成+人+亚洲+综合天堂| 久久精品国产**网站演员| 亚洲精品国产成人久久av盗摄| xfplay精品久久| 欧美色国产精品| 成人综合在线视频| 美女网站在线免费欧美精品| 亚洲一区中文在线| 亚洲欧洲性图库| 国产视频不卡一区| 欧美v国产在线一区二区三区| 欧美在线free| 成人小视频在线| 激情图区综合网| 婷婷国产在线综合| 中文字幕一区二区在线播放| 久久亚洲一级片| 日韩欧美成人一区| 欧美福利视频导航| 欧美在线小视频| 色综合色狠狠天天综合色| 成人免费视频网站在线观看| 麻豆精品一区二区av白丝在线 | 不卡的av电影| 国产ts人妖一区二区| 国产揄拍国内精品对白| 久久国产尿小便嘘嘘尿| 日韩va亚洲va欧美va久久| 婷婷开心久久网| 亚洲国产日韩综合久久精品| 一区二区三区四区五区视频在线观看| 国产精品无人区| 亚洲国产精品精华液2区45| 久久免费的精品国产v∧| 精品美女一区二区| 久久综合av免费|