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

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

?? svgen.s

?? 使用dsPIC30F 實現交流感應電機的矢量控制源代碼
?? S
字號:
;*******************************************************************
; SVGen
;  
;Description:  Calculate and load SVGen PWM values.
;
;
;
;Functional prototype:
; 
; void CalcSVGen( void )
;
;On Entry:   SVGenParm structure must contain qVr1, qVr2, qVr3
;
;On Exit:    PWM registers loaded
;
;Parameters: 
; Input arguments: None
;
; Return:
;   Void
;
; SFR Settings required:
;         CORCON.SATA  = 0
;         CORCON.IF    = 0
;
; Support routines required: None
;
; Local Stack usage: 0
;
; Registers modified: w0,w2,w3,w4,w5,w6,AccA
;
; Timing: 34 instruction cycles
;
;*******************************************************************
; C-Version of code
;
;void CalcRefVec( void )
;{ 
;    if( Vr1 >= 0 )
;        {       
;        // (xx1)
;        if( Vr2 >= 0 )
;            {
;            // (x11)
;            // Must be Sector 3 since Sector 7 not allowed
;            // Sector 3: (0,1,1)  0-60 degrees
;            T1 = Vr2
;            T2 = Vr1
;            CalcTimes();
;            dPWM1 = Ta
;            dPWM2 = Tb
;            dPWM3 = Tc
;            }
;        else
;            {            
;            // (x01)
;            if( Vr3 >= 0 )
;                {
;                // Sector 5: (1,0,1)  120-180 degrees
;                T1 = Vr1
;                T2 = Vr3
;                CalcTimes();
;                dPWM1 = Tc
;                dPWM2 = Ta
;                dPWM3 = Tb
;
;                }
;            else
;                {
;                // Sector 1: (0,0,1)  60-120 degrees
;                T1 = -Vr2;
;                T2 = -Vr3;
;                CalcTimes();
;                dPWM1 = Tb
;                dPWM2 = Ta
;                dPWM3 = Tc
;                }
;            }
;        }
;    else
;        {
;        // (xx0)
;        if( Vr2 >= 0 )
;            {
;            // (x10)
;            if( Vr3 >= 0 )
;                {
;                // Sector 6: (1,1,0)  240-300 degrees
;                T1 = Vr3
;                T2 = Vr2
;                CalcTimes();
;                dPWM1 = Tb
;                dPWM2 = Tc
;                dPWM3 = Ta
;                }
;            else
;                {
;                // Sector 2: (0,1,0)  300-0 degrees
;                T1 = -Vr3
;                T2 = -Vr1
;                CalcTimes();
;                dPWM1 = Ta
;                dPWM2 = Tc
;                dPWM3 = Tb
;                }
;            }
;        else
;            {            
;            // (x00)
;            // Must be Sector 4 since Sector 0 not allowed
;            // Sector 4: (1,0,0)  180-240 degrees
;            T1 = -Vr1
;            T2 = -Vr2
;            CalcTimes();
;            dPWM1 = Tc
;            dPWM2 = Tb
;            dPWM3 = Ta
;
;            }
;        }
;}
;
;
;void CalcTimes(void)
;{
;    T1 = PWM*T1
;    T2 = PWM*T2
;    Tc = (PWM-T1-T2)/2
;    Tb = Ta + T1
;    Ta = Tb + T2
;}        
;
;
;*******************************************************************
;
          .include "general.inc"

; External references
          .include "Park.inc"
          .include "SVGen.inc"
          .include "CurModel.inc"

; Register usage
                        
          .equ WorkW,     w1  ; Working register
                        
          .equ T1W,       w2
          .equ T2W,       w3
                        
          .equ WorkDLoW,  w4  ; double word (multiply results)
          .equ Vr1W,      w4
          .equ TaW,       w4
          .equ WorkDHiW,  w5  ; double word (multiply results)
          .equ Vr2W,      w5
          .equ TbW,       w5
          .equ Vr3W,      w6
          .equ TcW,       w6

        .equ dPWM1, PDC1
        .equ dPWM2, PDC2
        .equ dPWM3, PDC3

;=================== CODE =====================

          .section  .text
          .global   _CalcSVGen
          .global   CalcSVGen

_CalcSVGen:
CalcSVGen:

     ;; Get qVr1,qVr2,qVr3
          mov.w     _SVGenParm+SVGen_qVr1,Vr1W
          mov.w     _SVGenParm+SVGen_qVr2,Vr2W
          mov.w     _SVGenParm+SVGen_qVr3,Vr3W

     ;; Test Vr1
          cp0       Vr1W
          bra       LT,jCalcRef20       ; Vr1W < 0

     ;; Test Vr2
          cp0       Vr2W
          bra       LT,jCalcRef10       ; Vr2W < 0

     ;; Must be Sector 3 since Sector 7 not allowed
     ;; Sector 3: (0,1,1)  0-60 degrees

     ;; T1 = Vr2
     ;; T2 = Vr1
          mov.w     Vr2W,T2W
          mov.w     Vr1W,T1W
          rcall     CalcTimes

     ;; dPWM1 = Ta
     ;; dPWM2 = Tb
     ;; dPWM3 = Tc
          mov.w     TaW,dPWM1
          mov.w     TbW,dPWM2
          mov.w     TcW,dPWM3
          return

jCalcRef10:
     ;; Test Vr3
          cp0       Vr3W
          bra       LT,jCalcRef15       ; Vr3W < 0

     ;; Sector 5: (1,0,1)  120-180 degrees
     ;; T1 = Vr1
     ;; T2 = Vr3
          mov.w     Vr1W,T2W
          mov.w     Vr3W,T1W
          rcall     CalcTimes

     ;; dPWM1 = Tc
     ;; dPWM2 = Ta
     ;; dPWM3 = Tb
          mov.w     TcW,dPWM1
          mov.w     TaW,dPWM2
          mov.w     TbW,dPWM3
          return

jCalcRef15:

     ;; Sector 1: (0,0,1)  60-120 degrees
     ;; T1 = -Vr2
     ;; T2 = -Vr3
          neg.w     Vr2W,T2W
          neg.w     Vr3W,T1W
          rcall     CalcTimes

     ;; dPWM1 = Tb
     ;; dPWM2 = Ta
     ;; dPWM3 = Tc
          mov.w     TbW,dPWM1
          mov.w     TaW,dPWM2
          mov.w     TcW,dPWM3
          return

jCalcRef20:

     ;; Test Vr2
          cp0       Vr2W
          bra       LT,jCalcRef30       ; Vr2W < 0

     ;; Test Vr3
          cp0       Vr3W
          bra       LT,jCalcRef25       ; Vr3W < 0

     ;; Sector 6: (1,1,0)  240-300 degrees
     ;; T1 = Vr3
     ;; T2 = Vr2
          mov.w     Vr3W,T2W
          mov.w     Vr2W,T1W
          rcall     CalcTimes

     ;; dPWM1 = Tb
     ;; dPWM2 = Tc
     ;; dPWM3 = Ta
          mov.w     TbW,dPWM1
          mov.w     TcW,dPWM2
          mov.w     TaW,dPWM3
          return

jCalcRef25:
     ;; Sector 2: (0,1,0)  300-360 degrees
     ;; T1 = -Vr3
     ;; T2 = -Vr1
          neg.w     Vr3W,T2W
          neg.w     Vr1W,T1W
          rcall     CalcTimes

     ;; dPWM1 = Ta
     ;; dPWM2 = Tc
     ;; dPWM3 = Tb
          mov.w     TaW,dPWM1
          mov.w     TcW,dPWM2
          mov.w     TbW,dPWM3
          return

jCalcRef30:
     ;; Must be Sector 4 since Sector 0 not allowed
     ;; Sector 4: (1,0,0)  180-240 degrees

     ;; T1 = -Vr1
     ;; T2 = -Vr2
          neg.w     Vr1W,T2W
          neg.w     Vr2W,T1W
          rcall     CalcTimes

     ;; dPWM1 = Tc
     ;; dPWM2 = Tb
     ;; dPWM3 = Ta
          mov.w     TcW,dPWM1
          mov.w     TbW,dPWM2
          mov.w     TaW,dPWM3
          return

;*******************************************************************
; CalcTimes
;
;
;void CalcTimes(void)
;{
;    T1 = PWM*T1
;    T2 = PWM*T2
;    Tc = (PWM-T1-T2)/2
;    Tb = Ta + T1
;    Ta = Tb + T2
;}        
;
; Timing: 17instruction cycles
;
;*******************************************************************
CalcTimes:

     ;; T1 = PWM*T1

     ;; Since T1 is in 1.15 and PWM in integer we do multiply by
     ;; 2*PWM*T1 as integers and use upper word of results

     ;; Load PWMPeriod 
          sl.w      _SVGenParm+SVGen_iPWMPeriod,WREG	;Mul PWM * 2 to allow for full range of voltage
          mul.us    w0,T1W,WorkDLoW
          mov.w     WorkDHiW,T1W

     ;; T2 = PWM*T2
          mul.us    w0,T2W,WorkDLoW
          mov.w     WorkDHiW,T2W

     ;; Tc = (PWM-T1-T2)/2
          ;mov.w     _SVGenParm+SVGen_iPWMPeriod,WorkW
          mov.w	    _SVGenParm+SVGen_iPWMPeriod,WREG				
          sub.w     w0,T1W,WorkW        ;PWM-T1
          sub.w     WorkW,T2W,WorkW     ; -T2
          asr.w     WorkW,WorkW         ; /2
          mov.w     WorkW,TcW           ; store Tc

     ;; Tb = Tc + T1
          add.w     WorkW,T1W,WorkW
          mov.w     WorkW,TbW


     ;; Ta = Tb + T2
          add.w     WorkW,T2W,WorkW
          mov.w     WorkW,TaW
          return




?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧洲在线/亚洲| 欧美成人一区二区三区| 美国欧美日韩国产在线播放| 亚洲国产精品成人综合| 欧美猛男超大videosgay| 国产成人免费在线视频| 日韩专区在线视频| 亚洲视频一二区| 久久午夜羞羞影院免费观看| 欧美午夜理伦三级在线观看| 粉嫩av一区二区三区粉嫩| 免费在线欧美视频| 亚洲午夜激情网站| 国产精品免费久久久久| 精品日韩成人av| 欧美综合在线视频| 99热99精品| 国产一区二区三区高清播放| 天天综合网 天天综合色| 亚洲欧美日韩中文播放| 欧美国产日韩精品免费观看| 精品国产乱码久久久久久1区2区| 欧美日韩精品一区二区三区蜜桃 | 国产精品久久久久aaaa樱花| 日韩精品一区在线| 欧美精品tushy高清| 色婷婷综合久久久中文一区二区| 国产成人8x视频一区二区| 精品一区二区三区在线播放| 青青草原综合久久大伊人精品| 一片黄亚洲嫩模| 亚洲精品乱码久久久久久黑人| 国产精品三级av| 欧美国产欧美综合| 国产蜜臀97一区二区三区| 国产色91在线| 国产婷婷色一区二区三区四区 | 国产偷国产偷亚洲高清人白洁| 日韩免费高清av| 欧美变态凌虐bdsm| 欧美mv和日韩mv国产网站| 欧美一区二区啪啪| 日韩免费观看2025年上映的电影| 欧美一级高清大全免费观看| 欧美一区二区三区成人| 91精品国产色综合久久不卡电影| 9191久久久久久久久久久| 8v天堂国产在线一区二区| 日韩精品中午字幕| 亚洲精品在线一区二区| 久久久久久电影| 国产精品丝袜久久久久久app| 中文字幕av资源一区| 成人免费在线播放视频| 亚洲精品高清在线| 亚洲v日本v欧美v久久精品| 日本欧美一区二区| 韩国成人福利片在线播放| 国产精品中文字幕一区二区三区| 国产91精品久久久久久久网曝门 | 91尤物视频在线观看| 99精品黄色片免费大全| 欧美亚洲综合在线| 91精品久久久久久蜜臀| 精品人在线二区三区| 日本一区二区三区电影| 最新国产の精品合集bt伙计| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲一区二区三区四区的| 日本不卡在线视频| 国产精品一区三区| 色婷婷国产精品综合在线观看| 欧美色综合久久| 欧美精品一区男女天堂| 国产精品国产三级国产aⅴ中文| 洋洋av久久久久久久一区| 蜜桃精品视频在线| 成人高清视频免费观看| 欧美三级一区二区| 26uuu亚洲综合色欧美| 亚洲欧美日韩精品久久久久| 日韩高清欧美激情| 成人app下载| 欧美高清视频在线高清观看mv色露露十八 | 精品亚洲成a人| 亚洲少妇30p| 蜜桃在线一区二区三区| 91影视在线播放| 欧美不卡一区二区三区四区| 18成人在线观看| 久久精品国产**网站演员| 成人美女视频在线看| 4438x成人网最大色成网站| 国产精品久久久久久久久快鸭 | 成a人片亚洲日本久久| 欧美日韩你懂得| 国产欧美精品一区| 丝袜国产日韩另类美女| 成人av影院在线| 日韩欧美精品在线视频| 洋洋av久久久久久久一区| 国产一区二区伦理| 欧美精品三级在线观看| 国产精品国产三级国产aⅴ入口| 日韩av电影免费观看高清完整版 | 91精品国产麻豆国产自产在线| 国产精品午夜免费| 免费成人在线视频观看| 色综合色狠狠天天综合色| www久久久久| 日韩电影在线免费看| 日本久久电影网| 欧美国产亚洲另类动漫| 免费在线观看视频一区| 欧美网站大全在线观看| 亚洲日本在线观看| 国产精品一区二区果冻传媒| 制服.丝袜.亚洲.另类.中文| 一区二区三区在线视频观看| 岛国一区二区在线观看| 精品乱人伦小说| 日韩精品免费专区| 欧美性大战xxxxx久久久| 亚洲欧洲av色图| 国产91丝袜在线播放0| 久久影院电视剧免费观看| 视频在线在亚洲| 欧美日韩国产综合一区二区| 亚洲精品中文在线影院| 色哟哟精品一区| 亚洲精品免费在线播放| 色综合色狠狠综合色| 亚洲精品国产无天堂网2021| 色综合天天综合狠狠| 亚洲欧美另类小说视频| 91麻豆自制传媒国产之光| 中文字幕一区二区不卡| 91免费看视频| 亚洲一区二三区| 欧美四级电影网| 午夜欧美电影在线观看| 欧美精品在线一区二区三区| 日韩成人午夜精品| 日韩三级精品电影久久久| 美女视频免费一区| 精品国产免费久久| 粉嫩久久99精品久久久久久夜| 中文字幕av一区 二区| 不卡影院免费观看| 亚洲码国产岛国毛片在线| 色菇凉天天综合网| 午夜天堂影视香蕉久久| 这里只有精品免费| 久久福利资源站| 国产精品嫩草久久久久| 色中色一区二区| 日日欢夜夜爽一区| 久久亚洲综合av| aa级大片欧美| 天涯成人国产亚洲精品一区av| 日韩一区二区三区免费观看| 韩国一区二区视频| 国产精品素人一区二区| 在线亚洲+欧美+日本专区| 日韩一区精品视频| 久久蜜桃一区二区| 色天天综合色天天久久| 日本在线播放一区二区三区| 久久亚洲一区二区三区明星换脸 | 中文在线免费一区三区高中清不卡| 成人动漫中文字幕| 亚洲国产视频一区| 欧美tk丨vk视频| 94-欧美-setu| 日韩精品乱码av一区二区| 久久久亚洲国产美女国产盗摄 | 99热这里都是精品| 日韩中文字幕一区二区三区| 久久奇米777| 欧美在线不卡视频| 国产精品一区二区三区网站| 一区二区高清视频在线观看| 精品国产精品一区二区夜夜嗨| 99视频精品全部免费在线| 男男gaygay亚洲| 亚洲美女在线一区| 2020国产精品久久精品美国| 色综合一区二区| 国产综合久久久久久鬼色 | 精品国产百合女同互慰| 91麻豆国产自产在线观看| 久久国产视频网| 亚洲乱码国产乱码精品精的特点| 精品国产成人系列| 欧美日韩一区二区三区不卡| 国产福利91精品| 日韩精品电影一区亚洲| 亚洲欧美国产77777| 精品国产91洋老外米糕| 日本精品一级二级|