📄 f2407hall3.asm
字号:
*******************************************************
* TMS320C24xx ANSI C Codegen Version 7.04
*******************************************************
; dspac -i../src -v2xx -iD:/CCStudio_v3.1/c2400/cgtools/include f2407hall3.c C:\DOCUME~1\liuping\LOCALS~1\Temp\f2407hall3.if
; dspopt NOT RUN
; dspcg -o -v2xx -o C:\DOCUME~1\liuping\LOCALS~1\Temp\f2407hall3.if C:\DOCUME~1\liuping\LOCALS~1\Temp\f2407hall3.asm C:\DOCUME~1\liuping\LOCALS~1\Temp\f2407hall3.tmp
.port
.file "f2407hall3.c"
.file "../src\regs240x.h"
.globl _portffff
.globl _portff0f
.globl _port0
.globl _port1
.globl _port2
.globl _port3
.globl _port4
.file "../src\f2407hall3.h"
.stag .fake0,144
.member _HallMap,0,52,8,64,,4
.member _CapFlag,64,4,8,16
.member _HallMapPointer,80,4,8,16
.member _tab,96,4,8,16
.member _init,112,144,8,16
.member _read,128,144,8,16
.eos
.sym _HALL3,0,8,13,144,.fake0
.sym _HALL3_handle,0,24,13,16,.fake0
.globl _F2407_EV2_HALL3_Init
.globl _F2407_EV2_HALL3_Read
.file "f2407hall3.c"
.text
.sym _F2407_EV2_HALL3_Init,_F2407_EV2_HALL3_Init,32,2,0
.globl _F2407_EV2_HALL3_Init
.func 20
;>>>> void F2407_EV2_HALL3_Init(HALL3 *p)
******************************************************
* FUNCTION DEF : _F2407_EV2_HALL3_Init
******************************************************
_F2407_EV2_HALL3_Init:
LF1 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,4
LAR AR0,*0+,AR3
.sym _p,-3+LF1,24,9,16,.fake0
.sym _HallGpio_temp,1,4,1,16
.sym _HallGpio,2,4,1,16
.sym _i,3,4,1,16
.line 2
;>>>> int HallGpio_temp,HallGpio,i;
.line 4
;>>>> MCRC=MCRC&0x0fc7f; // Configure CAP4-6 as GPIO (IOPE7+IOPF0-1)
LARK AR3,28820
LACK 64639
AND *
SACL *+
.line 5
;>>>> PEDATDIR=PEDATDIR&0x7fff; //Data Direction as input
LACK 32767
AND *
SACL *+
.line 6
;>>>> PFDATDIR=PFDATDIR&0x0fcff;
LACK 64767
AND *
SACL *
.line 8
;>>>> HallGpio = PFDATDIR;
SSXM
LAC *-,AR2
LARK AR2,2
MAR *0+
SACL * ,AR0
.line 9
;>>>> HallGpio = (HallGpio&0x03)<<1;
ANDK 3
SACL *
LAC * ,1,AR2
SACL *-,AR3
.line 10
;>>>> HallGpio_temp =PEDATDIR;
LAC * ,AR2
SACL *
.line 11
;>>>> if((HallGpio_temp&0X0080)!=0) // HallGpio.2-0 = IOPF1-0+IOPE7
BIT * ,8
BBZ L1
.line 12
;>>>> HallGpio=HallGpio+1;
MAR *+
LAC *
ADDK 1
SACL *
L1:
.line 13
;>>>> for (i=0;i<=3;i++)
LACK 0
LARK AR2,3
MAR *0+
SACL *
LAC *
SUBK 3
BGZ L4
L2:
.line 14
;>>>> p->HallMap[i] == HallGpio;
;>>>> switch(HallGpio) // motor table
LAC *
SBRK 6-LF1
ADDS * ,AR0
SACL *
LAR AR3,* ,AR2
.line 13
ADRK 6-LF1
LAC *
ADDK 1
SACL *
LAC *
SUBK 3
BLEZ L2
B L4
L5:
.line 17
;>>>> case 1:{p->tab=5;break;}
MAR * ,AR2
LARK AR2,-3+LF1
MAR *0+
LAR AR3,* ,AR3
LACK 5
ADRK 6
SACL *
B L6
L7:
.line 18
;>>>> case 2:{p->tab=3;break;}
MAR * ,AR2
LARK AR2,-3+LF1
MAR *0+
LAR AR3,* ,AR3
LACK 3
ADRK 6
SACL *
B L6
L8:
.line 19
;>>>> case 3:{p->tab=4;break;}
MAR * ,AR2
LARK AR2,-3+LF1
MAR *0+
LAR AR3,* ,AR3
LACK 4
ADRK 6
SACL *
B L6
L9:
.line 20
;>>>> case 4:{p->tab=1;break;}
MAR * ,AR2
LARK AR2,-3+LF1
MAR *0+
LAR AR3,* ,AR3
LACK 1
ADRK 6
SACL *
B L6
L10:
.line 21
;>>>> case 5:{p->tab=6;break;}
MAR * ,AR2
LARK AR2,-3+LF1
MAR *0+
LAR AR3,* ,AR3
LACK 6
ADRK 6
SACL *
B L6
L11:
.line 22
;>>>> case 6:{p->tab=2;break;}
MAR * ,AR2
LARK AR2,-3+LF1
MAR *0+
LAR AR3,* ,AR3
LACK 2
ADRK 6
SACL *
B L6
L12:
.line 23
;>>>> default:p->tab=p->tab;
MAR * ,AR2
LARK AR2,-3+LF1
MAR *0+
LAR AR3,*
LAR AR4,* ,AR3
SSXM
ADRK 6
LAC * ,AR4
ADRK 6
SACL *
B L6
L4:
.line 15
MAR *-
LAC *
SUBK 1
BZ L5
SUBK 1
BZ L7
SUBK 1
BZ L8
SUBK 1
BZ L9
SUBK 1
BZ L10
SUBK 1
BZ L11
B L12
L6:
.line 25
;>>>> CAPCONB = HALL3_INIT_STATE; // Set up capture units, CAP4-6 using GP timer 4
LARK AR4,29984
MAR * ,AR4
SPLK #-20228,*
.line 26
;>>>> CAPFIFOB = 0x1500; // Write "01" each CAPxFIFO for EV to believe that there is already an entry in the FIFO
ADRK 2
SPLK #5376,* ,AR5
.line 28
;>>>> MCRC=MCRC|0x0380; // Set up the capture4-6 pins to primary functions
LARK AR5,28820
LACK 896
OR *
SACL * ,AR1
EPI0_1:
.line 30
SBRK 5
LAR AR0,*-
PSHD *
RET
.endfunc 49,000000000H,4
.sym _F2407_EV2_HALL3_Read,_F2407_EV2_HALL3_Read,32,2,0
.globl _F2407_EV2_HALL3_Read
.func 52
;>>>> void F2407_EV2_HALL3_Read(HALL3 *p)
******************************************************
* FUNCTION DEF : _F2407_EV2_HALL3_Read
******************************************************
_F2407_EV2_HALL3_Read:
LF2 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,4
LAR AR0,*0+,AR2
.sym _p,-3+LF2,24,9,16,.fake0
.sym _HallGpio_temp,1,4,1,16
.sym _HallGpio,2,4,1,16
.sym _i,3,4,1,16
.line 2
;>>>> int HallGpio_temp,HallGpio,i;
.line 4
;>>>> p->CapFlag = EVBIFRC; // Save capture flag register, convenient for Watch Window
LARK AR2,-3+LF2
MAR *0+
LAR AR3,* ,AR4
LARK AR4,30001
SSXM
LAC * ,AR3
ADRK 4
SACL *
.line 5
;>>>> if (p->CapFlag==0) // NO_EDGE_DETECTED: No hall signal edges detected on CAP4-6 (bits 0-2)
;>>>> else // EDGE_DETECTED: Any hall signal edges detected on CAP1-3
LAC *
BZ L14
.line 10
;>>>> EVBIFRC = 0x0007; // Clear all CAP1-3 Int-flags
LACK 7
MAR * ,AR4
SACL * ,AR5
.line 11
;>>>> MCRC=MCRC&0x0fc7f; // Configure CAP4-6 as GPIO (IOPE7+IOPF0-1)
LARK AR5,28820
LACK 64639
AND *
SACL *+
.line 12
;>>>> PEDATDIR=PEDATDIR&0x7fff; //Data Direction as input
LACK 32767
AND *
SACL *+
.line 13
;>>>> PFDATDIR=PFDATDIR&0x0fcff;
LACK 64767
AND *
SACL * ,AR2
.line 14
;>>>> for (i=0;i<=3;i++)
LACK 0
ADRK 6-LF2
SACL *
LAC *
SUBK 3
BGZ L16
MAR *-,AR3
L15:
.line 16
;>>>> HallGpio = PFDATDIR;
LARK AR3,28822
LAC *-,AR2
SACL * ,AR0
.line 17
;>>>> HallGpio = (HallGpio&0x03)<<1;
;>>>> //HallGpio_temp =PEDATDIR;
ANDK 3
SACL *
LAC * ,1,AR2
SACL * ,AR3
.line 19
;>>>> if((PEDATDIR&0X0080)!=0) // HallGpio.2-0 = IOPF1-0+IOPE7
BIT * ,8
BBZ L17
.line 20
;>>>> HallGpio=HallGpio+1;
MAR * ,AR2
LAC *
ADDK 1
SACL *
L17:
.line 22
;>>>> p->HallMap[i] = HallGpio;
MAR * ,AR2
MAR *+
LAC *
SBRK 6-LF2
ADDS * ,AR0
SACL *
LAR AR4,* ,AR2
ADRK 5-LF2
LAC *+,AR4
SACL * ,AR2
.line 14
LAC *
ADDK 1
SACL *
LAC *-,AR3
SUBK 3
BLEZ L15
L16:
.line 24
;>>>> MCRC=MCRC|0x0380; // Set up the capture4-6 pins to primary functions
LARK AR3,28820
LACK 896
MAR * ,AR3
OR *
SACL * ,AR2
.line 25
;>>>> if((p->HallMap[0] == p->HallMap[1])&&(p->HallMap[2] == p->HallMap[3])&&(p->HallMap[1] == p->HallMap[3]))
LARK AR2,-3+LF2
MAR *0+
LAR AR4,*
LAR AR5,* ,AR5
LAC * ,AR4
MAR *+
SUB *
BNZ L19
MAR *+
LAC * ,AR5
ADRK 3
SUB *
BNZ L19
SBRK 2
LAC * ,AR4
MAR *+
SUB *
BNZ L19
.line 26
;>>>> p->HallMapPointer =p->HallMap[0];
;>>>> switch(p->HallMapPointer) //old motor table
SBRK 3
LAC * ,AR5
ADRK 4
SACL *
B L19
L20:
.line 30
;>>>> case 1:{p->tab=5;break;}
MAR * ,AR2
LARK AR2,-3+LF2
MAR *0+
LAR AR3,* ,AR3
LACK 5
ADRK 6
SACL *
B L14
L22:
.line 31
;>>>> case 2:{p->tab=3;break;}
MAR * ,AR2
LARK AR2,-3+LF2
MAR *0+
LAR AR3,* ,AR3
LACK 3
ADRK 6
SACL *
B L14
L23:
.line 32
;>>>> case 3:{p->tab=4;break;}
MAR * ,AR2
LARK AR2,-3+LF2
MAR *0+
LAR AR3,* ,AR3
LACK 4
ADRK 6
SACL *
B L14
L24:
.line 33
;>>>> case 4:{p->tab=1;break;}
MAR * ,AR2
LARK AR2,-3+LF2
MAR *0+
LAR AR3,* ,AR3
LACK 1
ADRK 6
SACL *
B L14
L25:
.line 34
;>>>> case 5:{p->tab=6;break;}
MAR * ,AR2
LARK AR2,-3+LF2
MAR *0+
LAR AR3,* ,AR3
LACK 6
ADRK 6
SACL *
B L14
L26:
.line 35
;>>>> case 6:{p->tab=2;break;}
MAR * ,AR2
LARK AR2,-3+LF2
MAR *0+
LAR AR3,* ,AR3
LACK 2
ADRK 6
SACL *
B L14
L27:
.line 36
;>>>> default:p->tab=0;
MAR * ,AR2
LARK AR2,-3+LF2
MAR *0+
LAR AR3,* ,AR3
LACK 0
ADRK 6
SACL *
B L14
L19:
.line 28
MAR * ,AR2
LAR AR4,* ,AR4
ADRK 5
LAC *
SUBK 1
BZ L20
SUBK 1
BZ L22
SUBK 1
BZ L23
SUBK 1
BZ L24
SUBK 1
BZ L25
SUBK 1
BZ L26
B L27
L14:
EPI0_2:
.line 46
MAR * ,AR1
SBRK 5
LAR AR0,*-
PSHD *
RET
.endfunc 97,000000000H,4
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -