📄 vhz.asm
字号:
.line 6
;>>>> RstSystem();
;>>>> #if (BUILDLEVEL==LEVEL1)
;>>>> #if TARGET==F243
;>>>> pwm.period_max=500; /* This is based on 20kHz PWM frequency (20MHz) */
;>>>> #elif TARGET==F2407
CALL _RstSystem
.line 31
;>>>> pwm.period_max=1000; /* This is based on 20kHz PWM frequency (40MHz) */
;>>>> #endif /* TARGET */
LDPK _pwm
SPLK #1000,_pwm
.line 39
;>>>> VHZ_TI_Init(&vhz);
LALK _vhz+0
SACL *+
CALL _VHZ_TI_Init
MAR *-
.line 44
;>>>> rtmon_init(); /* Call the monitor init function */
CALL _rtmon_init
.line 45
;>>>> enable_ints(); /* Set off the system running. */
CALL _enable_ints
.line 50
;>>>> while(drive.enable_flg==0)
LDPK _drive
LAC _drive
BNZ L2
L1:
.line 52
;>>>> drive.init(&drive);
LALK _drive+0
SACL *+
LDPK _drive+1
LAC _drive+1
CALA
MAR *-
.line 50
LDPK _drive
LAC _drive
BZ L1
L2:
.line 58
;>>>> pwm.mfunc_c1=0;
LACK 0
SACL _pwm+2
.line 59
;>>>> pwm.mfunc_c2=0;
SACL _pwm+3
.line 60
;>>>> pwm.mfunc_c3=0;
SACL _pwm+4
.line 61
;>>>> pwm.init(&pwm);
;>>>> #if TARGET==F243
;>>>> EVIFRA=0xffff;
;>>>> #elif TARGET==F2407
LALK _pwm+0
SACL *+
LAC _pwm+5
CALA
MAR *-,AR3
.line 69
;>>>> EVAIFRA=0xffff;
;>>>> #endif /* TARGET */
LARK AR3,29743
SPLK #-1,*
.line 76
;>>>> dac.qptr0=&vhz.svgen.va;
LALK _vhz+17
LDPK _dac
SACL _dac
.line 77
;>>>> dac.qptr1=&vhz.svgen.vb;
LALK _vhz+18
SACL _dac+1
.line 78
;>>>> dac.qptr2=&vhz.svgen.vc;
LALK _vhz+19
SACL _dac+2
.line 79
;>>>> dac.qptr3=&vhz.svgen.alpha;
;>>>> #endif /* (BUILDLEVEL==LEVEL1) */
;>>>> #if (BUILDLEVEL==LEVEL2)
;>>>> #if TARGET==F243
;>>>> pwm.period_max=500; /* This is based on 20kHz PWM frequency (20MHz) */
;>>>> #elif TARGET==F2407
;>>>> pwm.period_max=1000; /* This is based on 20kHz PWM frequency (40MHz) */
;>>>> #endif /* TARGET */
;>>>> VHZ_TI_Init(&vhz);
;>>>> rtmon_init(); /* Call the monitor init function */
;>>>> enable_ints(); /* Set off the system running. */
;>>>> while(drive.enable_flg==0)
;>>>> drive.init(&drive);
;>>>> pwm.mfunc_c1=0;
;>>>> pwm.mfunc_c2=0;
;>>>> pwm.mfunc_c3=0;
;>>>> pwm.init(&pwm);
;>>>> dac.qptr0=&vhz.svgen.va;
;>>>> dac.qptr1=&vhz.svgen.vb;
;>>>> dac.qptr2=&vhz.svgen.vc;
;>>>> dac.qptr3=&vhz.svgen.alpha;
;>>>> #endif /* (BUILDLEVEL==LEVEL2) */
;>>>> #if (BUILDLEVEL==LEVEL3)
;>>>> #if TARGET==F243
;>>>> pwm.period_max=500; /* This is based on 20kHz PWM frequency (20MHz) */
;>>>> #elif TARGET==F2407
;>>>> pwm.period_max=1000; /* This is based on 20kHz PWM frequency (40MHz) */
;>>>> #endif /* TARGET */
;>>>> VHZ_TI_Init(&vhz);
;>>>> rtmon_init(); /* Call the monitor init function */
;>>>> enable_ints(); /* Set off the system running. */
;>>>> while(drive.enable_flg==0)
;>>>> drive.init(&drive);
;>>>> pwm.mfunc_c1=0;
;>>>> pwm.mfunc_c2=0;
;>>>> pwm.mfunc_c3=0;
;>>>> pwm.init(&pwm);
;>>>> cap.init(&cap);
;>>>> dac.qptr0=&vhz.svgen.va;
;>>>> dac.qptr1=&vhz.svgen.vb;
;>>>> dac.qptr2=&vhz.svgen.vc;
;>>>> dac.qptr3=&vhz.svgen.alpha;
;>>>> #endif /* (BUILDLEVEL==LEVEL3) */
;>>>> #if TARGET==F243
;>>>> EVIFRA=0x0ffff; /* Clear all Group A EV interrupt flags */
;>>>> #elif TARGET==F2407
LALK _vhz+15
SACL _dac+3
.line 226
;>>>> EVAIFRA=0x0ffff; /* Clear all EV1 Group A EV interrupt flags*/
;>>>> #endif /* TARGET */
;>>>> while(1) /* Nothing running in the background at present */
SPLK #-1,*
L3:
.line 238
B L3
.endfunc 327,000000000H,1
.sym _c_int02,_c_int02,32,2,0
.globl _c_int02
.func 329
;>>>> void interrupt c_int02()
******************************************************
* FUNCTION DEF : _c_int02
******************************************************
_c_int02:
CALL I$$SAVE
SAR AR1,*
LARK AR0,1
LAR AR0,*0+
.line 3
;>>>> asm(" CLRC XF ");
CLRC XF
.line 5
;>>>> isr_ticker++;
;>>>> #if (BUILDLEVEL==LEVEL1)
;>>>> #if TARGET==F243
;>>>> EVIFRA=0x0ffff; /* Clear all Group A EV interrupt flags */
;>>>> #elif TARGET==F2407
LDPK _isr_ticker
LAC _isr_ticker
ADDK 1
SACL _isr_ticker
.line 14
;>>>> EVAIFRA=0x0ffff; /* Clear all EV1 Group A EV interrupt flags*/
;>>>> #endif /* TARGET */
LARK AR3,29743
MAR * ,AR3
SPLK #-1,* ,AR1
.line 20
;>>>> drive.calc(&drive);
LALK _drive+0
SACL *+
LAC _drive+2
CALA
MAR *-
.line 26
;>>>> VHZ_TI_Run(&vhz);
LALK _vhz+0
SACL *+
CALL _VHZ_TI_Run
MAR *-
.line 31
;>>>> dac.update(&dac);
;>>>> #endif /* BUILDLEVEL==LEVEL1*/
;>>>> #if (BUILDLEVEL==LEVEL2)
;>>>> #if TARGET==F243
;>>>> EVIFRA=0x0ffff; /* Clear all Group A EV interrupt flags */
;>>>> #elif TARGET==F2407
;>>>> EVAIFRA=0x0ffff; /* Clear all EV1 Group A EV interrupt flags*/
;>>>> #endif /* TARGET */
;>>>> drive.calc(&drive);
;>>>> VHZ_TI_Run(&vhz);
;>>>> pwm.mfunc_c1=vhz.svgen.va;
;>>>> pwm.mfunc_c2=vhz.svgen.vb;
;>>>> pwm.mfunc_c3=vhz.svgen.vc;
;>>>> pwm.update(&pwm);
;>>>> dac.update(&dac);
;>>>> #endif /* BUILDLEVEL==LEVEL2*/
;>>>> #if (BUILDLEVEL==LEVEL3)
;>>>> #if TARGET==F243
;>>>> EVIFRA=0x0ffff; /* Clear all Group A EV interrupt flags */
;>>>> #elif TARGET==F2407
;>>>> EVAIFRA=0x0ffff; /* Clear all EV1 Group A EV interrupt flags*/
;>>>> #endif /* TARGET */
;>>>> drive.calc(&drive);
;>>>> if((cap.read(&cap))==0) /* Call the capture read function*/
;>>>> speed.time_stamp=cap.time_stamp; /* Read out new time stamp */
;>>>> speed.calc(&speed); /* Call the speed calulator */
;>>>> vhz.speed_value=speed.speed_prd; /* Update vhz object speed info */
;>>>> VHZ_TI_Run(&vhz);
;>>>> pwm.mfunc_c1=vhz.svgen.va;
;>>>> pwm.mfunc_c2=vhz.svgen.vb;
;>>>> pwm.mfunc_c3=vhz.svgen.vc;
;>>>> pwm.update(&pwm);
;>>>> dac.update(&dac);
;>>>> #endif /* BUILDLEVEL==LEVEL3*/
LALK _dac+0
SACL *+
LDPK _dac+5
LAC _dac+5
CALA
MAR *-
.line 127
;>>>> asm(" SETC XF ");
SETC XF
EPI0_2:
.line 128
SBRK 1
B I$$REST,AR1 ;and return
.endfunc 456,000000000H,1
.sym _RstSystem,_RstSystem,32,2,0
.globl _RstSystem
.func 459
;>>>> void RstSystem(void)
******************************************************
* FUNCTION DEF : _RstSystem
******************************************************
_RstSystem:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+,AR0
.line 8
;>>>> WSGR=WAIT_STATES; /* Initialize Wait State Generator */
LACK 64
SACL *
OUT * ,0ffffh,AR1
.line 9
;>>>> disable_ints(); /* Make sure the interrupts are disabled */
CALL _disable_ints
.line 10
;>>>> wdog.disable(); /* Vccp/Wddis pin/bit must be high */
LDPK _wdog
LAC _wdog
CALA
.line 11
;>>>> IMR=0x02; /* Set up interrupt mask to enable INT2
;>>>> until an explicit enable. */
;>>>> #if (TARGET==F243)
;>>>> SCSR=0x40c0; /* Init SCSR */
;>>>> EVIMRA=0x0200; /* Enable the timer underflow interrupt */
;>>>> #endif
;>>>> #if (TARGET==F2407)
LARK AR3,4
LACK 2
MAR * ,AR3
SACL *
.line 25
;>>>> SCSR1=0xc; /* Init SCSR */
LARK AR4,28696
ADRK 8
MAR * ,AR4
SAR AR3,* ,AR5
.line 26
;>>>> EVAIMRA=0x0200; /* Enable the timer underflow interrupt */
;>>>> #endif /* TARGET */
LARK AR5,29740
SPLK #512,* ,AR1
EPI0_3:
.line 29
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 487,000000000H,1
.sym _phantom,_phantom,32,2,0
.globl _phantom
.func 490
;>>>> void interrupt phantom(void)
;>>>> static int phantom_count;
******************************************************
* FUNCTION DEF : _phantom
******************************************************
_phantom:
CALL I$$SAVE
SAR AR1,*
LARK AR0,1
LAR AR0,*0+
.sym _phantom_count,_phantom_count$1,4,3,16
.line 5
;>>>> phantom_count ++;
LDPK _phantom_count$1
LAC _phantom_count$1
ADDK 1
SACL _phantom_count$1
EPI0_4:
.line 15
SBRK 1
B I$$REST,AR1 ;and return
.endfunc 504,000000000H,1
.sym _rtmon_init,_rtmon_init,32,2,0
.globl _rtmon_init
.func 512
;>>>> void rtmon_init(void)
******************************************************
* FUNCTION DEF : _rtmon_init
******************************************************
_rtmon_init:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+
.line 3
;>>>> asm(" CALL MON_RT_CNFG ");
CALL MON_RT_CNFG
EPI0_5:
.line 4
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 515,000000000H,1
.sym _isr_ticker,_isr_ticker,4,2,16
.globl _isr_ticker
*****************************************************
* UNDEFINED REFERENCES *
*****************************************************
.global _enable_ints
.global I$$SAVE
.global I$$REST
.global _disable_ints
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -