📄 pwm_1.asm
字号:
*******************************************************
* TMS320C2x/C2xx/C5x ANSI C Codegen Version 7.00
*******************************************************
; C:\TIC2XX\C2000\CGTOOLS\BIN\DSPAC.EXE -v2xx PWM_1 C:\WINDOWS.000\TEMP\PWM_1.if
; dspopt NOT RUN
; C:\TIC2XX\C2000\CGTOOLS\BIN\DSPCG.EXE -o -v2xx -o C:\WINDOWS.000\TEMP\PWM_1.if C:\WINDOWS.000\TEMP\PWM_1.asm C:\WINDOWS.000\TEMP\PWM_1.tmp
.port
.file "PWM_1.c"
.file "C:\tic2xx\c2000\cgtools\include\regs240x.h"
.globl _portffff
.globl _portff0f
.globl _port0
.globl _port1
.globl _port2
.globl _port3
.globl _port4
.file "C:\tic2xx\c2000\cgtools\include\SCI.h"
.globl _SCISetBaud
.globl _SCIInit
.globl _SCIReset
.globl _SCISetRXINT
.globl _SCISetTXINT
.globl _SCISetRXINTPriority
.globl _SCISetTXINTPriority
.globl _SCIReceive
.globl _SCISend
.globl _SCIPrintHex
.globl _SCIPrintf
.globl _num_str
.file "PWM_1.c"
.text
.sym _bad_trap,_bad_trap,32,2,0
.globl _bad_trap
.func 19
;>>>> void bad_trap( void )
******************************************************
* FUNCTION DEF : _bad_trap
******************************************************
_bad_trap:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+
L1:
.line 3
;>>>> while(1) ;
B L1
.endfunc 22,000000000H,1
.sym _main,_main,32,2,0
.globl _main
.func 25
;>>>> void main( void )
;>>>> UINT k,j;
******************************************************
* FUNCTION DEF : _main
******************************************************
_main:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,5
LAR AR0,*0+
.sym _k,1,14,1,16
.sym _j,2,14,1,16
.line 5
;>>>> DSPInit(PLLx4);
LACK 0
SACL *+
CALL _DSPInit
MAR *-,AR3
.line 7
;>>>> EVA_ENABLE; // PWM1,2绰 EVA俊 加秦乐栏骨肺 EVA 葛碘阑 劝己拳
LARK AR3,28696
LACK 4
OR *
SACL * ,AR4
.line 8
;>>>> T1DISABLE; // 老窜 timer甫 厚劝己拳
;>>>> //-------------------------------------------------------------------------
;>>>> // 1. setting PWM1 and 2, PWM 免仿 淬寸 巧阑 PWM 扁瓷栏肺 汲沥
LARK AR4,29700
LACK -65
AND *
SACL * ,AR3
.line 12
;>>>> SET_PWM1;
ADRK 120
LACK 64
OR *
SACL *
.line 13
;>>>> SET_PWM2;
;>>>> // 2. Setting Timer1, PWM 林扁甫 搬沥茄促.
LACK 128
OR *
SACL * ,AR1
.line 16
;>>>> T1PR = (CPU_clk()/PWM_PERIOD);
;>>>> //泅犁 CPU 悼累 林颇荐俊辑 荤侩窍绊磊窍绰 PWM 林颇荐甫 唱穿绢霖 蔼阑
;>>>> // 鸥捞赣 悼累 林颇荐肺 汲沥窍搁 等促.
;>>>> // 3. ACTRA = Compare Action Control Register A
CALL _CPU_clk
MAR * ,AR2
LARK AR2,3
MAR *0+
SACL *+
SACH *-,AR1
LACK 30000
SACL *+
SACH *+,AR2
ZALS *+
ADDH * ,AR1
CALL L$$DIVU
LARK AR3,29699
MAR * ,AR3
SACL *
.line 22
;>>>> ACTRA = 0x0009;
;>>>> // bit3,2 are for PWM2 action mode : 10-active high, 01-active low
;>>>> // bit1,0 are for PWM1 action mode : 10-active high, 01-active low
;>>>> // 抛胶飘甫 困秦 PWM2绰 active high肺, PWM1篮 active low肺 汲沥
;>>>> // 4. PWM duty 汲沥
LACK 9
ADRK 16
SACL * ,AR1
.line 28
;>>>> CMPR1 = (unsigned int)(T1PR*0.1); // CMPR1 -> PWM1 & PWM2
;>>>> // 10% duty甫 爱绰 PWM 颇屈阑 父甸绢 夯促.
;>>>> // 5. COMCONA = Compare Control Register A
LALK FL0
RPTK 1
TBLR *+
SSXM
MAR * ,AR3
SBRK 16
LAC * ,AR1
CALL F$$ITOF
CALL F$$MUL
CALL F$$FTOU
MAR * ,AR3
ADRK 20
SACL *
.line 32
;>>>> COMCONA = 0xC200;
;>>>> // bit 15 is for Compare Enable
;>>>> // bit 9 is for Compare Output enable
;>>>> // 6. 鸥捞赣 悼累 葛靛 汲沥
SBRK 6
SPLK #-15872,*
.line 37
;>>>> T1CON = 0xD040;
;>>>> // bit 12,11 are for Count Mode Selection:10-continuous Up count mode
;>>>> // bit 10,9,8 are for Input Clock Prescaler 000 - x/1
;>>>> // bit 6 is for Timer Enable
;>>>> //-------------------------------------------------------------------------
SBRK 13
SPLK #-12224,* ,AR4
.line 43
;>>>> SET_PC_OUT(BIT0); // for debugging
;>>>> while(1)
LARK AR4,28818
LACK -2
AND *
SACL *
ADRK 10
LACK 256
OR *
SACL * ,AR2
RSXM ;;;
L2:
.line 48
;>>>> for(j=0;j<65000;j++)
LACK 0
LARK AR2,2
MAR *0+
SACL *
ZALS *
BNV $+2
MAR *+
SACL *+
SACH *-
LT *+
MPYK 1
LPH *
LACK 65000
SPAC
BNV $+6
BGZ L5
B $+4
BLEZ L5
SBRK 3
L4:
.line 50
;>>>> k++;
LAC *
ADDK 1
SACL *+
.line 48
LAC *
ADDK 1
SACL *
ZALS *
BNV $+2
MAR *+
SACL *+
SACH *-
LT *+
MPYK 1
LPH *
LACK 65000
SPAC
SBRK 3
BNV $+6
BLZ L4
B $+4
BGZ L4
L5:
.line 52
;>>>> TOGGLE(PORTC,BIT0); // 悼累 犬牢 侩栏肺 LED 配臂
LARK AR3,28828
LACK 1
MAR * ,AR3
XOR *
SACL * ,AR2
.line 53
B L2
.endfunc 78,000000000H,5
*************************************************
* DEFINE FLOATING POINT CONSTANTS *
*************************************************
.text
FL0: .float 1.e-1
*****************************************************
* UNDEFINED REFERENCES *
*****************************************************
.global _DSPInit
.global _CPU_clk
.global L$$DIVU
.global F$$ITOF
.global F$$MUL
.global F$$FTOU
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -