?? pwm.asm
字號:
*******************************************************
* TMS320C24xx ANSI C Codegen Version 7.04
*******************************************************
; dspac -q -d_DEBUG -v2xx -iD:/CCStudio_v3.1/c2400/cgtools/include pwm.c C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\pwm.if
; dspopt NOT RUN
; dspcg -o -q -v2xx -o C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\pwm.if C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\pwm.asm C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\pwm.tmp
.port
.file "pwm.c"
.file "f2407_c.h"
.globl _portFF0F
.globl _portFFFF
.file "pwm.c"
.text
.sym _disable,_disable,32,2,0
.globl _disable
.func 4
;>>>> void inline disable()
******************************************************
* FUNCTION DEF : _disable
******************************************************
_disable:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+
.line 3
;>>>> asm(" setc INTM");
setc INTM
EPI0_1:
.line 4
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 7,000000000H,1
.sym _initial,_initial,36,2,0
.globl _initial
.func 9
;>>>> int initial()
******************************************************
* FUNCTION DEF : _initial
******************************************************
_initial:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+
.line 3
;>>>> asm(" setc SXM"); // 符號位擴展有效
setc SXM
.line 4
;>>>> asm(" clrc OVM"); // 累加器中結果正常溢出
clrc OVM
.line 5
;>>>> asm(" clrc CNF"); // B0被配置為數據存儲空間
clrc CNF
.line 6
;>>>> SCSR1=0x81FE; // CLKIN=10M,CLKOUT=4CLKIN=40M
LARK AR3,28696
MAR * ,AR3
SPLK #33278,*
.line 7
;>>>> WDCR=0x0E8; // 不使能看門狗,因為SCSR2中的WDOVERRIDE
;>>>> // 即WD復位后的缺省值為1,故可以用
;>>>> // 軟件禁止看門狗
LACK 232
ADRK 17
SACL * ,AR4
.line 10
;>>>> IMR=0x0000; // 禁止所有中斷
LARK AR4,4
LACK 0
SACL *
.line 11
;>>>> IFR=0x0FFFF; // 清除全部中斷標志,"寫1清0"
ADRK 2
SPLK #65535,* ,AR0
.line 12
;>>>> WSGR=0x00; // 禁止所有的等待狀態
SACL *
OUT * ,0ffffh,AR1
EPI0_2:
.line 13
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 21,000000000H,1
.sym _pwminitial,_pwminitial,36,2,0
.globl _pwminitial
.func 23
;>>>> int pwminitial()
******************************************************
* FUNCTION DEF : _pwminitial
******************************************************
_pwminitial:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+,AR3
.line 3
;>>>> MCRC=MCRC|0x007E; // IOPE1-6被配置為基本功能方式,PWM7-12
LARK AR3,28820
LACK 126
OR *
SACL * ,AR4
.line 4
;>>>> ACTRB=0x0666; // PWM12,10,8 低有效,PWM11,9,7 高有效
LARK AR4,29971
SPLK #1638,*
.line 5
;>>>> DBTCONB=0x00; // 不使能死區控制
LACK 0
ADRK 2
SACL *
.line 6
;>>>> CMPR4=0x1000;
ADRK 2
SPLK #4096,*+
.line 7
;>>>> CMPR5=0x3000;
SPLK #12288,*+
.line 8
;>>>> CMPR6=0x5000;
SPLK #20480,*
.line 9
;>>>> T3PR=0x6000; // 設置定時器3的周期寄存器,并設置CMPR4-6,以確定不
;>>>> // 同的輸出占空比
SBRK 22
SPLK #24576,*
.line 11
;>>>> COMCONB=0x8200; // 使能比較操作
ADRK 14
SPLK #33280,*
.line 12
;>>>> T3CON=0x1000; // 定時器3為連續增計數模式
SBRK 13
SPLK #4096,* ,AR1
EPI0_3:
.line 13
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 35,000000000H,1
.sym _nothing,_nothing,32,2,0
.globl _nothing
.func 37
;>>>> void interrupt nothing()
******************************************************
* FUNCTION DEF : _nothing
******************************************************
_nothing:
CALL I$$SAVE
SAR AR1,*
LARK AR0,1
LAR AR0,*0+
.line 3
;>>>> return; // 中斷直接返回
EPI0_4:
.line 4
SBRK 1
B I$$REST,AR1 ;and return
.endfunc 40,000000000H,1
.sym _main,_main,36,2,0
.globl _main
.func 42
;>>>> main( )
******************************************************
* FUNCTION DEF : _main
******************************************************
_main:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+
.line 4
;>>>> disable(); // 總中斷禁止
CALL _disable
.line 5
;>>>> initial(); // 系統初始化
CALL _initial
.line 6
;>>>> pwminitial(); // PWM輸出初始化
CALL _pwminitial
.line 7
;>>>> T3CON=T3CON|0x0040; // 啟動定時器3
;>>>> while(1)
;>>>> ; //等待中斷發生
LARK AR3,29956
LACK 64
MAR * ,AR3
OR *
SACL *
L1:
.line 11
B L1
.endfunc 55,000000000H,1
*****************************************************
* UNDEFINED REFERENCES *
*****************************************************
.global I$$SAVE
.global I$$REST
.end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -