?? 采樣spwm程序.asm.bak
字號:
BCND WXM3 ,LEQ ;小于2π跳轉
SACL TEMP5 ;否則保存
WXM3 LACC TEMP4
ADD #17157 ;加4π/3,Q12格式
SACL TEMP6 ;保存第6個角度值
SUB #25736 ;檢測是否小于2π,Q12格式
BCND WXM4 ,LEQ ;小于2π跳轉
SACL TEMP6 ;否則保存
WXM4 LT TEMP4 ;開始將第4個角度轉換成度
MPY #917 ;乘轉換系數,Q4格式
PAC
SACH TEMP4 ;保存第4個角度值,Q0格式
LACC #SIN_ENTRY ;SIN表入口地址
ADD TEMP4 ;偏移量
TBLR TEMP4 ;保存第4個SIN值,Q14格式有符號數
LT TEMP4
MPY M_ ;乘M,Q9格式
PAC ;Q23格式
SACH TEMP4,7 ;相當于右移9位,Q14格式有符號數
LACC TEMP4
ADD #1,14 ;加+1
SACL TEMP4 ;保存, Q14格式
LT T_HALF ;T_carr/2=1000,Q0格式
MPY TEMP4
PAC
SACH TEMP4,2 ;相當于右移14位,保存為Q0格式
LT TEMP5 ;開始將第5個角度轉換成度
MPY #917
PAC
SACH TEMP5 ;保存第5個角度值,Q0格式
LACC #SIN_ENTRY ;SIN表入口地址
ADD TEMP5 ;偏移量
TBLR TEMP5 ;保存第5個SIN值,Q14格式有符號數
LT TEMP5
MPY M_ ;乘M,Q9格式
PAC ;Q23格式
SACH TEMP5,7 ;相當于右移9位,Q14格式有符號數
LACC TEMP5
ADD #1,14 ;加+1
SACL TEMP5 ;保存, Q14格式
LT T_HALF ;T_carr/2=1000,Q0格式
MPY TEMP5
PAC
SACH TEMP5,2 ;相當于右移14位,保存為Q0格式
LT TEMP6 ;開始將第6個角度轉換成度
MPY #917
PAC
SACH TEMP6 ;保存第6個角度值,Q0格式
LACC #SIN_ENTRY ;SIN表入口地址
ADD TEMP6 ;偏移量
TBLR TEMP6 ;保存第6個SIN值,Q14格式有符號數
LT TEMP6
MPY M_ ;乘M,Q9格式
PAC ;Q23格式
SACH TEMP6,7 ;相當于右移9位,Q14格式有符號數
LACC TEMP6
ADD #1,14 ;加+1
SACL TEMP6 ;保存, Q14格式
LT T_HALF ;T_carr/2=1000,Q0格式
MPY TEMP6
PAC
SACH TEMP6,2 ;相當于右移14位,保存為Q0格式
LACC K_
ADD #1 ;K+1
SACL K_
SUB KMAX ;比較K是否小于2N
BCND WXM5,LT ;是則跳轉
SPLK #0,K_ ;否則K=0
WXM5 LACC TEMP1
ADD TEMP4 ;計算脈寬
SACL TEMP1 ;暫存
SUB PMIN ;檢測是否小于最小正脈寬3微秒
BCND WXM6,GT ;不是繼續
SPLK #0,TEMP1 ;是則刪除窄脈沖
B WXM7
WXM6 LACC TEMP1 ;檢測是否小于最小負脈寬3微秒
SUB PMAX
BCND WXM7,LT ;不是繼續
SPLK #2000,TEMP1 ;是則刪除窄脈沖
WXM7 LACC #2000 ;2倍周期值
SUB TEMP1 ;計算比較值1
ROR ;除2
LDP #232 ;指向事件管理器A
SACL CMPR1 ;保存比較值1
LDP #5
LACC TEMP2
ADD TEMP5 ;計算脈寬
SACL TEMP2 ;暫存
SUB PMIN ;檢測是否小于最小正脈寬3微秒
BCND WXM8,GT ;不是繼續
SPLK #0,TEMP2 ;是則刪除窄脈沖
B WXM9
WXM8 LACC TEMP2 ;檢測是否小于最小負脈寬3微秒
SUB PMAX
BCND WXM9,LT ;不是繼續
SPLK #2000,TEMP2 ;是則刪除窄脈沖
WXM9 LACC #2000 ;2倍周期值
SUB TEMP2 ;計算比較值2
ROR ;除2
LDP #232 ;指向事件管理器A
SACL CMPR2 ;保存比較值2
LDP #5
LACC TEMP3
ADD TEMP6 ;計算脈寬
SACL TEMP3 ;暫存
SUB PMIN ;檢測是否小于最小正脈寬3微秒
BCND WXM10,GT ;不是繼續
SPLK #0,TEMP3 ;是則刪除窄脈沖
B WXM11
WXM10 LACC TEMP3 ;檢測是否小于最小負脈寬3微秒
SUB PMAX
BCND WXM11,LT ;不是繼續
SPLK #2000,TEMP3 ;是則刪除窄脈沖
WXM11 LACC #2000 ;2倍周期值
SUB TEMP3 ;計算比較值3
ROR ;除2
LDP #232 ;指向事件管理器A
SACL CMPR3 ;保存比較值3
LDP #5 ;恢復現場
LT P_LO ;恢復P
MPY #1
LPH P_HI
LT T_SAVE ;恢復T
LACC ACCH,16
ADDS ACCL ;恢復ACC
LDP #0 ;指向B2
LST #ST1,ST1_SAVE ; 恢復ST1
LST #ST0,ST0_SAVE ; 恢復ST0
CLRC INTM ; 開中斷
RET ; 返回
.DATA
;--------------------------------------數據段-------------------------------------------------------------
SIN_ENTRY .WORD 0 ;SIN值表,D1格式有符號數
.WORD 286,572,857,1143,1428
.WORD 1713,1997,2280,2563,2845
.WORD 3126,3406,3686,3964,4240
.WORD 4516, 4790,5063,5334,5604
.WORD 5872,6138,6402,6664, 6924
.WORD 7182,7438,7692,7943,8192
.WORD 8438,8682,8923,9162,9397
.WORD 9630,9860,10087,10311,10531
.WORD 10749,10963,11174,11381,11585
.WORD 11786,11982,12176,12365,12551
.WORD 12733,12911,13085,13255,13421
.WORD 13583,13741,13894,14044,14189
.WORD 14330,14466,14598,14726,14849
.WORD 14968,15082,15191,15296,15396
.WORD 15491,15582,15668,15749,15826
.WORD 15897,15964,16026,16083,16135
.WORD 16182,16225,16262,16294,16322
.WORD 16344,16362,16374, 16382,16384 ;90
.WORD 16382,16374,16362,16344,16322
.WORD 16294,16262,16225,16182,16135
.WORD 16083,16026,15964,15897,15826
.WORD 15749,15668,15582,15491,15396
.WORD 15296,15191,15082,14968,14849
.WORD 14726,14598,14466,14330,14189
.WORD 14044,13894,13741,13583,13421
.WORD 13255,13085,12911,12733,12551
.WORD 12365,12176,11982,11786,11585
.WORD 11381,11174,10963,10749,10531
.WORD 10311,10087,9860,9630,9397
.WORD 9162,8923,8682,8438,8192
.WORD 7943,7692,7438,7182,6924
.WORD 6664,6402,6138,5872,5604
.WORD 5334,5063,4790,4516,4240
.WORD 3964,3686,3406,3126,2845
.WORD 2563,2280,1997,1713,1428
.WORD 1143,857,572,286, 0 ;180
.WORD 65250,64964,64679,64393,64108
.WORD 63823,63539,63256,62973,62691
.WORD 62410,62130,61850,61572,61296
.WORD 61020,60746,60473,60202,59932
.WORD 59664,59398,59134,58872,58612
.WORD 58354,58098,57844,57593,57344
.WORD 57098,56854,56613,56374,56139
.WORD 55906,55676,55449,55225,55005
.WORD 54787,54573,54362,54155,53951
.WORD 53750,53554,53360,53171,52985
.WORD 52803,52625,52451,52281,52115
.WORD 51953,51795,51642,51492,51347
.WORD 51206,51070,50938,50810,50687
.WORD 50568,50454,50345,50240,50140
.WORD 50045,49954, 49868,49787,49710
.WORD 49639,49572,49510,49453,49401
.WORD 49354,49311,49274,49242,49214
.WORD 49192,49174,49162,49154,49152 ;270
.WORD 49154,49162,49174,49192,49214
.WORD 49242,49274,49311,49354,49401
.WORD 49453,49510,49572,49639,49710
.WORD 49787,49868,49954,50045,50140
.WORD 50240,50345,50454,50568,50687
.WORD 50810,50938,51070,51206,51347
.WORD 51492,51642,51795,51953,52115
.WORD 52281,52451,52625,52803,52985
.WORD 53171,53360,53554,53750,53951
.WORD 54155,54362,54573,54787,55005
.WORD 55225,55449,55676,55906,56139
.WORD 56374,56613,56854,57098,57344
.WORD 57593,57844,58098,58354,58612
.WORD 58872,59134,59398,59664,59932
.WORD 60202,60473,60746,61020,61296
.WORD,61572,61850,62130,62410,62691
.WORD 62973,63256,63539,63823,64108
.WORD 64393,64679,64964,65250 ,0 ;360
.END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -