📄 myexample_c.asm
字号:
*******************************************************
* TMS320C24xx ANSI C Codegen Version 7.02
*******************************************************
; dspac -v2xx -iD:/ti/c2400/cgtools/include myexample_c.c C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\myexample_c.if
; dspopt NOT RUN
; dspcg -o -v2xx -o C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\myexample_c.if C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\myexample_c.asm C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\myexample_c.tmp
.port
.bss _LED_index,1,1
.file "myexample_c.c"
.file "f2407_c.h"
.globl _portFF0F
.globl _portFFFF
.file "myexample_c.c"
.globl _port0000
.globl _port0001
.globl _port0002
.globl _port0003
.globl _port0004
.globl _port0030
.globl _port0040
.globl _LED_index
.text
.sym _main,_main,32,2,0
.globl _main
.func 114
;>>>> void main(void)
******************************************************
* FUNCTION DEF : _main
******************************************************
_main:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+,AR3
.line 5
;>>>> *SCSR1 = 0x00FD;
LARK AR3,28696
LACK 253
SACL *+
.line 22
;>>>> *SCSR2 = (*SCSR2 | 0x000B) & 0x000F;
LACK 11
OR *
ANDK 15
SACL *
.line 34
;>>>> *WDCR = 0x00E8;
LACK 232
ADRK 16
SACL * ,AR0
.line 45
;>>>> WSGR = 0x0040;
LACK 64
SACL *
OUT * ,0ffffh,AR3
.line 56
;>>>> *MCRA = 0x03E0; /* group A pins */
ADRK 103
SPLK #992,*
.line 76
;>>>> *MCRB = 0xFE00; /* group B pins */
ADRK 2
SPLK #65024,*
.line 96
;>>>> *MCRC = 0x0000; /* group C pins */
LACK 0
ADRK 2
SACL *
.line 118
;>>>> *PCDATDIR = *PCDATDIR | 0x0100;
LACK 256
ADRK 8
OR *
SACL * ,AR4
.line 122
;>>>> *T1CON = 0x0000; /* disable timer 1 */
LARK AR4,29700
LACK 0
SACL *
.line 123
;>>>> *T2CON = 0x0000; /* disable timer 2 */
ADRK 4
SACL *
.line 125
;>>>> *GPTCONA = 0x0000; /* configure GPTCONA */
SBRK 8
SACL *+
.line 142
;>>>> *T1CNT = 0x0000; /* clear timer counter */
SACL *
.line 143
;>>>> *T1PR = pwm_half_per; /* set timer period */
ADRK 2
SPLK #1000,*
.line 144
;>>>> *DBTCONA = 0x0a6c; /* deadband units off */
ADRK 18
SPLK #2668,*
.line 145
;>>>> *CMPR1 = pwm_duty; /* set PWM1 duty cycle */
ADRK 2
SPLK #750,*+
.line 146
;>>>> *CMPR2 = pwm_duty; /* set PWM1 duty cycle */
SPLK #750,*
.line 148
;>>>> *ACTRA = 0x00AA; /* PWM1 pin set active high */
LACK 170
SBRK 5
SACL *
.line 160
;>>>> *COMCONA = 0x8200; /* configure COMCON register */
SBRK 2
SPLK #33280,*
.line 171
;>>>> *T1CON = 0x0840; /* configure T1CON register */
SBRK 13
SPLK #2112,*+
.line 187
;>>>> *T2CNT = 0x0000; /* clear timer counter */
LACK 0
SACL *
.line 188
;>>>> *T2PR = timer2_per; /* set timer period */
ADRK 2
SPLK #40000,*+
.line 190
;>>>> *T2CON = 0xD740; /* configure T2CON register */
SPLK #55104,* ,AR5
.line 205
;>>>> LED_index = 0x0001; /* initialize the LED index */
LACK 1
LDPK _LED_index
SACL _LED_index
.line 208
;>>>> *IMR = 0x0000; /* clear the IMR register */
LARK AR5,4
LACK 0
SACL *
.line 209
;>>>> *IFR = 0x003F; /* clear any pending core interrupts */
LACK 63
ADRK 2
SACL *
.line 210
;>>>> *IMR = 0x0004; /* enable desired core interrupts */
LACK 4
SBRK 2
SACL * ,AR4
.line 213
;>>>> *EVAIFRA = 0xFFFF; /* clear all EVA group A interrupts */
ADRK 39
SPLK #65535,*+
.line 214
;>>>> *EVAIFRB = 0xFFFF; /* clear all EVA group B interrupts */
SPLK #65535,*+
.line 215
;>>>> *EVAIFRC = 0xFFFF; /* clear all EVA group C interrupts */
SPLK #65535,* ,AR5
.line 216
;>>>> *EVAIMRA = 0x0000; /* enable desired EVA group A interrupts */
SBRK 4
MAR * ,AR4
SBRK 5
SAR AR5,*+,AR5
.line 217
;>>>> *EVAIMRB = 0x0001; /* enable desired EVA group B interrupts */
MAR *+,AR4
SAR AR5,*+,AR5
.line 218
;>>>> *EVAIMRC = 0x0000; /* enable desired EVA group C interrupts */
MAR *-,AR4
SAR AR5,* ,AR5
.line 220
;>>>> *EVBIFRA = 0xFFFF; /* clear all EVB group A interrupts */
LARK AR5,29999
SPLK #65535,*+
.line 221
;>>>> *EVBIFRB = 0xFFFF; /* clear all EVB group B interrupts */
SPLK #65535,*+
.line 222
;>>>> *EVBIFRC = 0xFFFF; /* clear all EVB group C interrupts */
SPLK #65535,* ,AR4
.line 223
;>>>> *EVBIMRA = 0x0000; /* enable desired EVB group A interrupts */
LACK 0
ADRK 254
SACL *+
.line 224
;>>>> *EVBIMRB = 0x0000; /* enable desired EVB group B interrupts */
SACL *+
.line 225
;>>>> *EVBIMRC = 0x0000; /* enable desired EVB group C interrupts */
SACL *
.line 228
;>>>> asm(" CLRC INTM"); /* enable global interrupts */
CLRC INTM
L1:
.line 231
;>>>> while(1) ; /* endless loop, wait for interrupt */
B L1
.endfunc 345,000000000H,1
.sym _timer2_isr,_timer2_isr,32,2,0
.globl _timer2_isr
.func 349
;>>>> interrupt void timer2_isr(void)
******************************************************
* FUNCTION DEF : _timer2_isr
******************************************************
_timer2_isr:
CALL I$$SAVE
SAR AR1,*
LARK AR0,1
LAR AR0,*0+,AR3
.line 4
;>>>> *EVAIFRB = *EVAIFRB & 0x0001; /* clear T2PINT flag */
LARK AR3,29744
LACK 1
AND *
SACL *
.line 7
;>>>> LED = LED_index; /* light the LEDs */
LDPK _LED_index
OUT _LED_index,040h
.line 8
;>>>> LED_index = LED_index << 1; /* left shift LED index */
LAC _LED_index,1
SACL _LED_index
.line 9
;>>>> if(LED_index == 0x0100) LED_index = 0x0001; /* reset LED index */
LAC _LED_index
SUBK 256
BNZ L2
LACK 1
SACL _LED_index
L2:
.line 12
;>>>> *PCDATDIR = *PCDATDIR ^ 0x0001; /* XOR the IOPC0 bit to toggle the pin */
LARK AR4,28828
LACK 1
MAR * ,AR4
XOR *
SACL * ,AR1
EPI0_2:
.line 14
SBRK 1
B I$$REST,AR1 ;and return
.endfunc 362,000000000H,1
.sym _LED_index,_LED_index,14,2,16
.globl _LED_index
*****************************************************
* UNDEFINED REFERENCES *
*****************************************************
.global I$$SAVE
.global I$$REST
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -