📄 bldc.asm
字号:
*******************************************************
* TMS320C24xx ANSI C Codegen Version 7.04
*******************************************************
; dspac -i../../../../rtmon/ -i../include -i../../../../lib/dmclib/clib/include -i../../../../lib/drvlib/clib/include -v2xx -iC:/C
; dspopt NOT RUN
; dspcg -o -v2xx -o C:\DOCUME~1\jsg\LOCALS~1\Temp\bldc.if C:\DOCUME~1\jsg\LOCALS~1\Temp\bldc.asm C:\DOCUME~1\jsg\LOCALS~1\Temp\bldc.tmp
.port
.bss _dac,6,1
.bss _pwm,6
.bss _adc,11
.bss _bldc,61
.bss _wdog,2
.bss _phantom_count$1,1
.bss _isr_ticker,1
.file "bldc.c"
.file "../../../../lib/drvlib/clib/include\regs240x.h"
.globl _portffff
.globl _portff0f
.globl _port0
.globl _port1
.globl _port2
.globl _port3
.globl _port4
.file "../include\sysvecs.h"
.include "..\..\..\..\rtmon\c200mnrt.i"
.include "..\..\..\..\lib\drvlib\clib\include\x24x.h"
.sect "vectors"
.ref _c_int0
B _c_int0 ;00h reset
B _phantom ;02h INT1
B _phantom ;04h INT2
B _c_int03 ;06h INT3
B _phantom ;08h INT4
B _phantom ;0Ah INT5
B _phantom ;0Ch INT6
.if ( 1 ) ; macro occupies fourteen words in the vector table.
MON_EINTR mon_eintr_vecs ; 0E
; 10
; 12
; 14
; 16
; 18
; 1A
.else ; macro not in vector table.
MON_EINTR_B B MON_EINTR ; 0E
HUNG10 B HUNG10 ; 10
HUNG12 B HUNG12 ; 12
HUNG14 B HUNG14 ; 14
HUNG16 B HUNG16 ; 16
HUNG18 B HUNG18 ; 18
HUNG1A B HUNG1A ; 1A
.endif
HUNG1C B HUNG1C ; 1C
HUNG1E B HUNG1E ; 1E
HUNG20 B HUNG20 ; 20
TRAP B TRAP ; 22
NMI B _phantom ; 24
.if ( 1 ) ; macro occupies eight words in the vector table.
MON_ETRAP mon_etrap_vecs ; 26
; 28
; 2A
; 2C
.else ; macro not in vector table.
MON_ETRAP_B B MON_ETRAP ; 26
HUNG28 B _phantom ; 28
HUNG2A B _phantom ; 2A
HUNG2C B _phantom ; 2C
.endif
HUNG2E B _phantom ; 2E
HUNG30 B _phantom ; 30
HUNG32 B _phantom ; 32
HUNG34 B _phantom ; 34
HUNG36 B _phantom ; 36
HUNG38 B _phantom ; 38
HUNG3A B _phantom ; 3A
HUNG3C B _phantom ; 3C
HUNG3E B _phantom ; 3E
.file "../../../../lib/drvlib/clib/include\EVMDAC.H"
.stag .fake0,96
.member _qptr0,0,20,8,16
.member _qptr1,16,20,8,16
.member _qptr2,32,20,8,16
.member _qptr3,48,20,8,16
.member _scale,64,4,8,16
.member _update,80,148,8,16
.eos
.sym _EVMDAC,0,8,13,96,.fake0
.globl _F24X_EVM_DAC_Update
.file "../../../../lib/drvlib/clib/include\F2407BLDCPWM.H"
.stag .fake1,96
.member _cmtn_ptr_bd,0,4,8,16
.member _mfunc_p,16,4,8,16
.member _period_max,32,4,8,16
.member _d_func,48,4,8,16
.member _init,64,148,8,16
.member _update,80,148,8,16
.eos
.sym _PWMGEN,0,8,13,96,.fake1
.sym _PWMGEN_handle,0,24,13,16,.fake1
.globl _F2407_BLDC_PWM_Init
.globl _F2407_BLDC_PWM_Update
.file "../../../../lib/drvlib/clib/include\F2407ADC.H"
.stag .fake2,176
.member _c1_gain,0,4,8,16
.member _c2_gain,16,4,8,16
.member _c3_gain,32,4,8,16
.member _c4_gain,48,4,8,16
.member _c1_out,64,4,8,16
.member _c2_out,80,4,8,16
.member _c3_out,96,4,8,16
.member _c4_out,112,4,8,16
.member _a4_ch_sel,128,4,8,16
.member _init,144,148,8,16
.member _update,160,148,8,16
.eos
.sym _ADCVALS,0,8,13,176,.fake2
.sym _ADCVALS_handle,0,24,13,16,.fake2
.globl _F2407_ADC_Init
.globl _F2407_ADC_Update
.file "../../../../lib/drvlib/clib/include\F24X_WD.H"
.stag .fake3,32
.member _disable,0,148,8,16
.member _reset,16,148,8,16
.eos
.sym _WATCHDOG,0,8,13,32,.fake3
.sym _WATCHDOG_handle,0,24,13,16,.fake3
.globl _F24x_WD_ResetCounter
.globl _F24x_WD_Disable
.file "../../../../lib/dmclib/clib/include\mod6.h"
.stag .fake4,48
.member _trig_in,0,4,8,16
.member _cntr,16,4,8,16
.member _calc,32,148,8,16
.eos
.sym _MOD6CNT,0,8,13,48,.fake4
.sym _MOD6CNT_handle,0,24,13,16,.fake4
.globl _mod6cnt_calc
.file "../../../../lib/dmclib/clib/include\pid2.h"
.stag .fake5,208
.member _fb_reg2,0,4,8,16
.member _ref_reg2,16,4,8,16
.member _k0_reg2,32,4,8,16
.member _k1_reg2,48,4,8,16
.member _kc_reg2,64,4,8,16
.member _un_reg2,80,4,8,16
.member _en0_reg2,96,4,8,16
.member _upi_reg2,112,4,8,16
.member _epi_reg2,128,4,8,16
.member _max_reg2,144,4,8,16
.member _min_reg2,160,4,8,16
.member _out_reg2,176,4,8,16
.member _calc,192,148,8,16
.eos
.sym _PID2,0,8,13,208,.fake5
.sym _PID2_handle,0,24,13,16,.fake5
.globl _pid2_calc
.file "../../../../lib/dmclib/clib/include\impl.h"
.stag .fake6,64
.member _period,0,4,8,16
.member _out,16,4,8,16
.member _skpcnt,32,4,8,16
.member _calc,48,148,8,16
.eos
.sym _IMPULSE,0,8,13,64,.fake6
.sym _IMPULSE_handle,0,24,13,16,.fake6
.globl _impulse_calc
.file "../../../../lib/dmclib/clib/include\rmp2.h"
.stag .fake7,112
.member _max,0,4,8,16
.member _min,16,4,8,16
.member _dly,32,4,8,16
.member _delay_cntr,48,4,8,16
.member _desired,64,4,8,16
.member _out,80,4,8,16
.member _calc,96,148,8,16
.eos
.sym _RMP2,0,8,13,112,.fake7
.sym _RMP2_handle,0,24,13,16,.fake7
.globl _rmp2_calc
.file "../../../../lib/dmclib/clib/include\rmp3.h"
.stag .fake8,112
.member _desired,0,4,8,16
.member _dly,16,4,8,16
.member _dly_cntr,32,4,8,16
.member _min,48,4,8,16
.member _out,64,4,8,16
.member _done_flg,80,4,8,16
.member _calc,96,148,8,16
.eos
.sym _RMP3,0,8,13,112,.fake8
.sym _RMP3_handle,0,24,13,16,.fake8
.globl _rmp3_calc
.file "../../../../lib/dmclib/clib/include\cmtn.h"
.stag .fake9,304
.member _trig,0,4,8,16
.member _va,16,4,8,16
.member _vb,32,4,8,16
.member _vc,48,4,8,16
.member _zc_trig,64,4,8,16
.member _ptr_ct,80,4,8,16
.member _debug_Bemf,96,4,8,16
.member _noise_windowCntr,112,4,8,16
.member _d30_doneFlg,128,4,8,16
.member _time_stampNew,144,4,8,16
.member _time_stampOld,160,4,8,16
.member _v_timer,176,4,8,16
.member _delay,192,4,8,16
.member _dt_taskFlg,208,4,8,16
.member _noise_windowMax,224,4,8,16
.member _delay_cntr,240,4,8,16
.member _cdnw_delta,256,4,8,16
.member _nw_dynThold,272,4,8,16
.member _calc,288,148,8,16
.eos
.sym _CMTN,0,8,13,304,.fake9
.sym _CMTN_handle,0,24,13,16,.fake9
.globl _cmtn_trig_calc
.file "../include\bldc_ti.h"
.stag .fake10,976
.member _cmtn_period_target,0,4,8,16
.member _cmtn_period_setpt,16,4,8,16
.member _ramp_delay,32,4,8,16
.member _I_loop_flg,48,4,8,16
.member _D_func_desired,64,4,8,16
.member _sp_up_done_flg,80,4,8,16
.member _current_set,96,4,8,16
.member _align_flag,112,4,8,16
.member _impl,128,8,8,64,.fake6
.member _mod6,192,8,8,48,.fake4
.member _rmp3,240,8,8,112,.fake8
.member _cmtn,352,8,8,304,.fake9
.member _pid2,656,8,8,208,.fake5
.member _rmp2,864,8,8,112,.fake7
.eos
.sym _BLDC_TI,0,8,13,976,.fake10
.sym _BLDC_TI_handle,0,24,13,16,.fake10
.globl _BLDC_TI_Init
.globl _BLDC_TI_Run
.file "../include\bldc.h"
.globl _RstSystem
.globl _rtmon_init
.globl _c_int03
.globl _phantom
.globl _time_base_init
.globl _evm_pwm_init
.globl _update_v_timer
.file "bldc.c"
.sect ".cinit"
.word IS1,_dac
.word 768
.word 768
.word 768
.word 768
.word 2000
.word _F24X_EVM_DAC_Update+0
IS1 .set 6
.sym _dac,_dac,8,2,96,.fake0
.globl _dac
.word IS2,_pwm
.word 0
.word 32767
.word 2000
.word 0
.word _F2407_BLDC_PWM_Init+0
.word _F2407_BLDC_PWM_Update+0
IS2 .set 6
.sym _pwm,_pwm,8,2,96,.fake1
.globl _pwm
.word IS3,_adc
.word 8191
.word 8191
.word 8191
.word 8191
.word 0
.word 0
.word 0
.word 0
.word 12816
.word _F2407_ADC_Init+0
.word _F2407_ADC_Update+0
IS3 .set 11
.sym _adc,_adc,8,2,176,.fake2
.globl _adc
.word IS4,_bldc
.word 512
.word 1280
.word 400
.word 0
.word 3072
.word 0
.word 101
.word 15
.word 4096
.word 0
.word 0
.word _impulse_calc+0
.word 0
.word 0
.word _mod6cnt_calc+0
.word 0
.word 0
.word 0
.word 80
.word 0
.word 0
.word _rmp3_calc+0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word _cmtn_trig_calc+0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word _pid2_calc+0
.word 32752
.word 15
.word 80
.word 0
.word 0
.word 0
.word _rmp2_calc+0
IS4 .set 61
.sym _bldc,_bldc,8,2,976,.fake10
.globl _bldc
.word IS5,_wdog
.word _F24x_WD_Disable+0
.word _F24x_WD_ResetCounter+0
IS5 .set 2
.sym _wdog,_wdog,8,2,32,.fake3
.globl _wdog
.globl _isr_ticker
.text
.sym _main,_main,32,2,0
.globl _main
.func 94
;>>>> void main()
******************************************************
* FUNCTION DEF : _main
******************************************************
_main:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+
.line 6
;>>>> RstSystem();
CALL _RstSystem
.line 11
;>>>> pwm.init(&pwm); /* pwm driver initialization */
LALK _pwm+0
SACL *+
LDPK _pwm+4
LAC _pwm+4
CALA
MAR *-
.line 16
;>>>> adc.init(&adc); /* adc driver initialization */
LALK _adc+0
SACL *+
LDPK _adc+9
LAC _adc+9
CALA
MAR *-
.line 21
;>>>> time_base_init();
;>>>> #if (REAL_TIME == TRUE)
CALL _time_base_init
.line 28
;>>>> rtmon_init(); /* Call the monitor init function */
;>>>> #endif /* REAL_TIME==TRUE */
CALL _rtmon_init
.line 34
;>>>> evm_pwm_init();
CALL _evm_pwm_init
.line 42
;>>>> adc.a4_ch_sel = CHANNEL_SETTINGS;
LDPK _adc+8
SPLK #25923,_adc+8
.line 48
;>>>> BLDC_TI_Init(&bldc);
LALK _bldc+0
SACL *+
CALL _BLDC_TI_Init
MAR *-
.line 50
;>>>> pwm.d_func = ALIGN_DUTY;
;>>>> #if (BUILDLEVEL==LEVEL1)
;>>>> dac.qptr0 = &bldc.impl.out;
;>>>> #endif /* BUILDLEVEL==LEVEL1 */
;>>>> #if (BUILDLEVEL==LEVEL2)
;>>>> adc.c1_gain = 0x0800; /* gain = 0.125 (Q13) */
;>>>> adc.c2_gain = 0x0800; /* gain = 0.125 (Q13) */
;>>>> adc.c3_gain = 0x0800; /* gain = 0.125 (Q13) */
;>>>> adc.c4_gain = 0x1fff; /* gain = 1.0 (Q13) */
;>>>> dac.qptr0 = &adc.c1_out;
;>>>> dac.qptr1 = &adc.c2_out;
;>>>> dac.qptr2 = &adc.c3_out;
;>>>> dac.qptr3 = &adc.c4_out;
;>>>> #endif /* BUILDLEVEL==LEVEL2 */
;>>>> #if (BUILDLEVEL==LEVEL3)
;>>>> adc.c1_gain = 0x0800; /* gain = 0.125 (Q13) */
;>>>> adc.c2_gain = 0x0800; /* gain = 0.125 (Q13) */
;>>>> adc.c3_gain = 0x0800; /* gain = 0.125 (Q13) */
;>>>> adc.c4_gain = 0x1fff; /* gain = 1.0 (Q13) */
;>>>> dac.qptr0 = &bldc.cmtn.trig;
;>>>> #if 0
;>>>> dac.qptr1 = &bldc.cmtn.neutral;
;>>>> #endif
;>>>> dac.qptr2 = &bldc.cmtn.zc_trig;
;>>>> dac.qptr3 = &bldc.cmtn.debug_Bemf;
;>>>> #endif /* BUILDLEVEL==LEVEL3 */
;>>>> #if (BUILDLEVEL==LEVEL4)
;>>>> adc.c1_gain = 0x0800; /* gain = 0.125 (Q13) */
;>>>> adc.c2_gain = 0x0800; /* gain = 0.125 (Q13) */
;>>>> adc.c3_gain = 0x0800; /* gain = 0.125 (Q13) */
;>>>> adc.c4_gain = 0x1fff; /* gain = 1.0 (Q13) */
;>>>> dac.qptr0 = &adc.c1_out;
;>>>> dac.qptr1 = &adc.c2_out;
;>>>> dac.qptr2 = &adc.c3_out;
;>>>> dac.qptr3 = &adc.c4_out;
;>>>> #endif /* BUILDLEVEL==LEVEL4 */
;>>>> #if (BUILDLEVEL==LEVEL5)
LDPK _pwm+3
SPLK #3072,_pwm+3
.line 145
;>>>> adc.c1_gain = 0x0800; /* gain = 0.125 (Q13) */
SPLK #2048,_adc
.line 146
;>>>> adc.c2_gain = 0x0800; /* gain = 0.125 (Q13) */
SPLK #2048,_adc+1
.line 147
;>>>> adc.c3_gain = 0x0800; /* gain = 0.125 (Q13) */
SPLK #2048,_adc+2
.line 148
;>>>> adc.c4_gain = 0x1fff; /* gain = 1.0 (Q13) */
SPLK #8191,_adc+3
.line 150
;>>>> bldc.current_set = 0x0065;
LACK 101
SACL _bldc+6
.line 156
;>>>> dac.qptr0 = &adc.c1_out;
LALK _adc+4
SACL _dac
.line 157
;>>>> dac.qptr1 = &adc.c2_out;
LALK _adc+5
SACL _dac+1
.line 158
;>>>> dac.qptr2 = &adc.c3_out;
LALK _adc+6
SACL _dac+2
.line 159
;>>>> dac.qptr3 = &adc.c4_out;
;>>>> #endif /* BUILDLEVEL==LEVEL5 */
LALK _adc+7
SACL _dac+3
.line 165
;>>>> enable_ints(); /* set off the system running */
;>>>> while(1) /* Nothing running in the background at present */
CALL _enable_ints
L1:
.line 174
B L1
.endfunc 269,000000000H,1
.sym _c_int03,_c_int03,32,2,0
.globl _c_int03
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -