📄 fchev_can.asm
字号:
*******************************************************
* TMS320C2x/C2xx/C5x ANSI C Codegen Version 7.00
*******************************************************
; C:\tic2xx\c2000\cgtools\bin\dspac.exe -v2xx -iD:\FCHEV_pid\inlcude fchev_can.c C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\fchev_can.if
; dspopt NOT RUN
; C:\tic2xx\c2000\cgtools\bin\dspcg.exe -o -v2xx -o C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\fchev_can.if C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\fchev_can.asm C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\fchev_can.tmp
.port
.bss _pid,12,1
_fir .usect "firfilt",28,1
.bss _mbx2_a,1
.bss _mbx2_b,1
.bss _mbx2_c,1
.bss _mbx2_d,1
.bss _LED6_counter,1
.bss _LED7_counter,1
.bss _LED8_counter,1
.bss _LED_STATE,1
.bss _temp_RCR,1
.bss _temp_TCR,1
.bss _Ib,1
.bss _If,1
.bss _Ubus,1
.bss _temp,1
.bss _end_ad,1
.bss _channel_0,1
.bss _channel_1,1
.bss _channel_2,1
.bss _channel_3,1
.bss _tx_cnt,1
.bss _P_FC_ref,1
.bss _CAN_TFLAG,1
.file "fchev_can.c"
.file "D:\FCHEV_pid\inlcude\f2407regs.h"
.globl _portFF0F
.globl _portFFFF
.file "D:\FCHEV_pid\inlcude\firfilt.h"
.stag .fake0,112
.member _coeff_ptr,0,20,8,16
.member _dbuffer_ptr,16,20,8,16
.member _order,32,4,8,16
.member _input,48,4,8,16
.member _output,64,4,8,16
.member _init,80,144,8,16
.member _calc,96,144,8,16
.eos
.sym _FIRFILT_GEN,0,8,13,112,.fake0
.stag .fake1,448
.member _coeff_ptr,0,20,8,16
.member _dbuffer_ptr,16,20,8,16
.member _order,32,4,8,16
.member _input,48,4,8,16
.member _output,64,4,8,16
.member _dbuffer,80,52,8,160,,10
.member _coeff,240,52,8,176,,11
.member _init,416,144,8,16
.member _calc,432,144,8,16
.eos
.sym _FIRFILT_ORD10,0,8,13,448,.fake1
.stag .fake2,768
.member _coeff_ptr,0,20,8,16
.member _dbuffer_ptr,16,20,8,16
.member _order,32,4,8,16
.member _input,48,4,8,16
.member _output,64,4,8,16
.member _dbuffer,80,52,8,320,,20
.member _coeff,400,52,8,336,,21
.member _init,736,144,8,16
.member _calc,752,144,8,16
.eos
.sym _FIRFILT_ORD20,0,8,13,768,.fake2
.stag .fake3,128
.member _coeff_ptr,0,20,8,16
.member _brindex,16,4,8,16
.member _order,32,4,8,16
.member _dbuffer_ptr,48,20,8,16
.member _input,64,4,8,16
.member _output,80,4,8,16
.member _init,96,144,8,16
.member _calc,112,144,8,16
.eos
.sym _FIRFILT_CGEN,0,8,13,128,.fake3
.sym _FIRFILT_GEN_handle,0,24,13,16,.fake0
.sym _FIRFILT_ORD10_handle,0,24,13,16,.fake1
.sym _FIRFILT_ORD20_handle,0,24,13,16,.fake2
.sym _FIRFILT_CGEN_handle,0,24,13,16,.fake3
.sym _FIRFILT_CORD10_handle,0,24,13,16,.fake3
.sym _FIRFILT_COED20_handle,0,24,13,16,.fake3
.globl _FIRFILT_GEN_calc
.globl _FIRFILT_ORD10_calc
.globl _FIRFILT_ORD20_calc
.globl _FIRFILT_CGEN_calc
.globl _FIRFILT_CORD10_calc
.globl _FIRFILT_CORD20_calc
.globl _FIRFILT_LIN_init
.globl _FIRFILT_CIR_init
.file "D:\FCHEV_pid\inlcude\pid_reg1.h"
.stag .fake4,192
.member _pid_ref_reg1,0,4,8,16
.member _pid_fb_reg1,16,4,8,16
.member _Kp_reg1,32,4,8,16
.member _Ki_high_reg1,48,4,8,16
.member _Ki_low_reg1,64,4,8,16
.member _Kd_reg1,80,4,8,16
.member _pid_out_max,96,4,8,16
.member _pid_out_min,112,4,8,16
.member _pid_e1_reg1,128,4,8,16
.member _pid_e2_reg1,144,4,8,16
.member _pid_out_reg1,160,4,8,16
.member _calc,176,148,8,16
.eos
.sym _PIDREG1,0,8,13,192,.fake4
.globl _pid_reg1_calc
.file "fchev_can.c"
.sect ".cinit"
.word IS1,_pid
.word 0
.word 0
.word 8704
.word 4912
.word -8531
.word 0
.word 32767
.word 0
.word 0
.word 0
.word 0
.word _pid_reg1_calc+0
IS1 .set 12
.sym _pid,_pid,8,2,192,.fake4
.globl _pid
.word IS2,_fir
.word 0
.word 0
.word 10
.word 0
.word 0
.word 0
.space 144
.word -171
.word -264
.word 437
.word 3464
.word 7882
.word 10067
.word 7882
.word 3464
.word 437
.word -264
.word -171
.word _FIRFILT_LIN_init+0
.word _FIRFILT_ORD10_calc+0
IS2 .set 28
.sym _fir,_fir,8,2,448,.fake1
.globl _fir
.globl _port0000
.globl _port0001
.globl _port0002
.globl _port0003
.globl _port0004
.globl _port0008
.globl _port0009
.word 1,_mbx2_a
.word -2
.sym _mbx2_a,_mbx2_a,4,2,16
.globl _mbx2_a
.word 1,_mbx2_b
.word -1
.sym _mbx2_b,_mbx2_b,4,2,16
.globl _mbx2_b
.word 1,_mbx2_c
.word -1
.sym _mbx2_c,_mbx2_c,4,2,16
.globl _mbx2_c
.word 1,_mbx2_d
.word -1
.sym _mbx2_d,_mbx2_d,4,2,16
.globl _mbx2_d
.globl _CAN_TFLAG
.word 1,_LED6_counter
.word 0
.sym _LED6_counter,_LED6_counter,4,2,16
.globl _LED6_counter
.word 1,_LED7_counter
.word 0
.sym _LED7_counter,_LED7_counter,4,2,16
.globl _LED7_counter
.word 1,_LED8_counter
.word 0
.sym _LED8_counter,_LED8_counter,4,2,16
.globl _LED8_counter
.word 1,_LED_STATE
.word 15
.sym _LED_STATE,_LED_STATE,4,2,16
.globl _LED_STATE
.word 1,_temp_RCR
.word -1
.sym _temp_RCR,_temp_RCR,4,2,16
.globl _temp_RCR
.word 1,_temp_TCR
.word -1
.sym _temp_TCR,_temp_TCR,4,2,16
.globl _temp_TCR
.word 1,_Ib
.word -1
.sym _Ib,_Ib,4,2,16
.globl _Ib
.word 1,_If
.word -1
.sym _If,_If,4,2,16
.globl _If
.word 1,_Ubus
.word -1
.sym _Ubus,_Ubus,4,2,16
.globl _Ubus
.word 1,_temp
.word -1
.sym _temp,_temp,4,2,16
.globl _temp
.word 1,_end_ad
.word -1
.sym _end_ad,_end_ad,4,2,16
.globl _end_ad
.word 1,_channel_0
.word -1
.sym _channel_0,_channel_0,4,2,16
.globl _channel_0
.word 1,_channel_1
.word -1
.sym _channel_1,_channel_1,4,2,16
.globl _channel_1
.word 1,_channel_2
.word -1
.sym _channel_2,_channel_2,4,2,16
.globl _channel_2
.word 1,_channel_3
.word -1
.sym _channel_3,_channel_3,4,2,16
.globl _channel_3
.word 1,_tx_cnt
.word 0
.sym _tx_cnt,_tx_cnt,4,2,16
.globl _tx_cnt
.globl _sci_init
.globl _delay
.word 1,_P_FC_ref
.word 0
.sym _P_FC_ref,_P_FC_ref,4,2,16
.globl _P_FC_ref
.text
.sym _main,_main,36,2,0
.globl _main
.func 76
;>>>> main()
******************************************************
* FUNCTION DEF : _main
******************************************************
_main:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+
.line 5
;>>>> asm(" SETC INTM");
SETC INTM
.line 6
;>>>> asm(" CLRC SXM");
CLRC SXM
.line 7
;>>>> asm(" CLRC OVM");
CLRC OVM
.line 8
;>>>> asm(" CLRC CNF");
CLRC CNF
.line 9
;>>>> asm(" nop");
nop
.line 10
;>>>> asm(" nop");
nop
.line 11
;>>>> asm(" nop");
nop
.line 13
;>>>> *SCSR1 = 0x00FD;
LARK AR3,28696
LACK 253
MAR * ,AR3
SACL *+
.line 28
;>>>> *SCSR2 = (*SCSR2 | 0x000B) & 0x000F;
LACK 11
OR *
ANDK 15
SACL *
.line 39
;>>>> *WDCR = 0x00E8;
LACK 232
ADRK 16
SACL * ,AR0
.line 48
;>>>> WSGR = 0x0000;
LACK 0
SACL *
OUT * ,0ffffh
.line 49
;>>>> asm(" NOP");
NOP
.line 50
;>>>> WSGR = 0x0040;
LACK 64
SACL *
OUT * ,0ffffh,AR3
.line 59
;>>>> *MCRA = 0x0000; /* group A pins */
LACK 0
ADRK 103
SACL *
.line 77
;>>>> *MCRB = 0xFEC0; /* group B pins */
ADRK 2
SPLK #65216,*
.line 95
;>>>> *MCRC = 0x0000; /* group C pins */
ADRK 2
SACL * ,AR4
.line 118
;>>>> *T1CON = 0x0000; /* disable timer 1 */
LARK AR4,29700
SACL *
.line 119
;>>>> *T2CON = 0x0000; /* disable timer 2 */
ADRK 4
SACL *
.line 120
;>>>> *GPTCONA = 0x0000; /* configure GPTCONA */
SBRK 8
SACL *
.line 135
;>>>> *T2CNT = 0x0000; /* clear timer counter */
ADRK 5
SACL *
.line 136
;>>>> *T2PR = timer2_per; /* set timer period */
ADRK 2
SPLK #3215,*+
.line 137
;>>>> *T2CON = 0x1700; /* configure T2CON register */
SPLK #5888,* ,AR5
.line 151
;>>>> *IMR = 0x0000; /* clear the IMR register */
LARK AR5,4
SACL *
.line 152
;>>>> *IFR = 0x003F; /* clear any pending core interrupts */
LACK 63
ADRK 2
SACL *
.line 153
;>>>> *IMR = 0x0006; /* enable desired core interrupts:T2peroid INT3&CAN ERROR HIGH INT2 */
LACK 6
SBRK 2
SACL *
.line 156
;>>>> *EVAIMRA = 0x0000; /* enable desired EVA group A interrupts */
SBRK 4
MAR * ,AR4
ADRK 36
SAR AR5,*+,AR5
.line 157
;>>>> *EVAIMRB = 0x0001; /* enable desired EVA group B interrupts:T2PINT ENABLE */
MAR *+,AR4
SAR AR5,*+,AR5
.line 158
;>>>> *EVAIMRC = 0x0000; /* enable desired EVA group C interrupts */
MAR *-,AR4
SAR AR5,*+
.line 159
;>>>> *EVAIFRA = 0xFFFF; /* clear all EVA group A interrupts */
SPLK #65535,*+
.line 160
;>>>> *EVAIFRB = 0xFFFF; /* clear all EVA group B interrupts */
SPLK #65535,*+
.line 161
;>>>> *EVAIFRC = 0xFFFF; /* clear all EVA group C interrupts */
SPLK #65535,* ,AR5
.line 167
;>>>> *MDER=0x0040; /*;MD2=1,MBX2为发送方式*/
ADRK 64
MAR * ,AR3
ADRK 108
SAR AR5,*
.line 168
;>>>> *CAN_IFR=0xFFFF; /*;清全部CAN中断标志*/
ADRK 9
SPLK #65535,*
.line 169
;>>>> *LAM1_H=0x7000; /*;设置邮箱2、3的屏蔽ID寄存器 */
ADRK 4
SPLK #28672,*+
.line 170
;>>>> *LAM1_L=0xFFFF; /* ;0则ID必须匹配 */
SPLK #65535,*
.line 172
;>>>> *MCR=0x1000; /* ;CCR=1 改变配置请求 */
SBRK 11
SPLK #4096,* ,AR3
.sym _W_CCE,L1,0,6,0
L1:
.line 173
;>>>> W_CCE: if(*GSR&0x0010==0x0000)goto W_CCE; /*;等待改变配置使能 */
LARK AR3,28935
ZALS *
.line 176
;>>>> *BCR2=0x0027; /* ;波特率预分频寄存器 40M/(39+1)=1M */
LACK 39
SBRK 3
SACL *+
.line 177
;>>>> *BCR1=0x0013; /* ;波特率设置为2+3+3=8 */
LACK 19
SACL *
.line 178
;>>>> *MCR=*MCR&0xEFFF; /*;CCR=0 改变配置结束请求 */
LACK 61439
SBRK 2
AND *
SACL *
.sym _W_NCCE,L3,0,6,0
L3:
.line 179
;>>>> W_NCCE: if(*GSR&0x0010==0x0010)goto W_NCCE;/*;等待改变配置不使能 */
LARK AR3,28935
MAR * ,AR3
BIT * ,15
BBNZ L3
.line 183
;>>>> *MDER=0x0040; /* ;不使能邮箱,邮箱2设为接收方式*/
LACK 64
SBRK 7
SACL *
.line 184
;>>>> *MCR=0x0103; /* ;CDR=1,数据区改变请求 */
ADRK 3
SPLK #259,* ,AR4
.line 186
;>>>> *MSGID2H=0x4080; /*;设置邮箱2的控制字及ID
;>>>> ;IDE=0, AME=1, AAM=0
;>>>> ;标准方式为MSGID2H[12~2]*/
LARK AR4,29201
SPLK #16512,*-
.line 189
;>>>> *MSGID2L=0xFFFF;
SPLK #65535,*
.line 190
;>>>> *MSGCTRL2=0x0008; /* ;设置控制域 */
LACK 8
ADRK 2
SACL *
.line 198
;>>>> *MBX2A=0x0000; /*;邮箱2信息初始化 */
LACK 0
ADRK 2
SACL *+
.line 199
;>>>> *MBX2B=0x0000;
SACL *+
.line 200
;>>>> *MBX2C=0x0000;
SACL *+
.line 201
;>>>> *MBX2D=0x0000;
SACL *
.line 204
;>>>> *MSGID3H=0x4088;
ADRK 2
SPLK #16520,*-
.line 205
;>>>> *MSGID3L=0xFFFF;
SPLK #65535,*
.line 207
;>>>> *MSGCTRL3=0x0008; /* ;RTR=0,DCL=8 */
LACK 8
ADRK 2
SACL *
.line 209
;>>>> *MBX3A=0x000F;
LACK 15
ADRK 2
SACL *+
.line 210
;>>>> *MBX3B=0x0200;
SPLK #512,*+
.line 211
;>>>> *MBX3C=0x0400;
SPLK #1024,*+
.line 212
;>>>> *MBX3D=0x0400;
SPLK #1024,* ,AR3
.line 215
;>>>> *MCR=0x2480; /* ;DBO=1,ABO=1,STM=0 */
SPLK #9344,*
.line 219
;>>>> *MDER=0x004C; /* ;ME3=1,MBX3 发送, ME2=1 接收 */
LACK 76
SBRK 3
SACL *
.line 221
;>>>> *CAN_IMR=0x8480;
ADRK 10
SPLK #33920,*-
.line 223
;>>>> *CAN_IFR=0xFFFF; /* ;清全部中断标志 */
SPLK #65535,* ,AR1
.line 229
;>>>> sci_init();
CALL _sci_init
.line 235
;>>>> fir.dbuffer_ptr=&fir.dbuffer[0];
LALK _fir+5
LDPK _fir+1
SACL _fir+1
.line 236
;>>>> fir.coeff_ptr=&fir.coeff[0];
LALK _fir+15
SACL _fir
.line 237
;>>>> fir.init(&fir);
LALK _fir+0
SACL *+
LAC _fir+26
CALA
MAR *-,AR3
.line 243
;>>>> *ADCTRL1=0x4000; /*reset ADC */
LARK AR3,28832
SPLK #16384,*
.line 244
;>>>> asm("NOP");
NOP
.line 245
;>>>> *ADCTRL1=0x0010;
LACK 16
SACL *+
.line 260
;>>>> *ADCTRL2=0x4242;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -