📄 f2407adc.asm
字号:
*******************************************************
* TMS320C24xx ANSI C Codegen Version 7.04
*******************************************************
; dspac -i../src -v2xx -iD:/CCStudio_v3.1/c2400/cgtools/include f2407adc.c C:\DOCUME~1\liuping\LOCALS~1\Temp\f2407adc.if
; dspopt NOT RUN
; dspcg -o -v2xx -o C:\DOCUME~1\liuping\LOCALS~1\Temp\f2407adc.if C:\DOCUME~1\liuping\LOCALS~1\Temp\f2407adc.asm C:\DOCUME~1\liuping\LOCALS~1\Temp\f2407adc.tmp
.port
.file "f2407adc.c"
.file "../src\regs240x.h"
.globl _portffff
.globl _portff0f
.globl _port0
.globl _port1
.globl _port2
.globl _port3
.globl _port4
.file "../src\F2407ADC.h"
.stag .fake0,176
.member _Ch1Gain,0,4,8,16
.member _Ch2Gain,16,4,8,16
.member _Ch3Gain,32,4,8,16
.member _Ch4Gain,48,4,8,16
.member _Ch1Out,64,4,8,16
.member _Ch2Out,80,4,8,16
.member _Ch3Out,96,4,8,16
.member _Ch4Out,112,4,8,16
.member _ChSelect,128,14,8,16
.member _init,144,144,8,16
.member _read,160,144,8,16
.eos
.sym _ADCVALS,0,8,13,176,.fake0
.sym _ADCVALS_handle,0,24,13,16,.fake0
.globl _F2407_ADC_Init
.globl _F2407_ADC_Read
.file "f2407adc.c"
.text
.sym _F2407_ADC_Init,_F2407_ADC_Init,32,2,0
.globl _F2407_ADC_Init
.func 9
;>>>> void inline F2407_ADC_Init(ADCVALS *p)
******************************************************
* FUNCTION DEF : _F2407_ADC_Init
******************************************************
_F2407_ADC_Init:
LF1 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+,AR3
.sym _p,-3+LF1,24,9,16,.fake0
.line 2
.line 4
;>>>> SCSR1=SCSR1|0x0080; /* Turn on the clocks to the ADC module*/
LARK AR3,28696
LACK 128
OR *
SACL *
.line 5
;>>>> CALIBRATION=CALIBRATION_CONSTANT;
LACK 0
ADRK 160
SACL *
.line 7
;>>>> ADCTRL1=ADC_RESET_FLAG; /* Reset the ADC Module */
SBRK 24
SPLK #16384,*
.line 8
;>>>> ADCTRL1=ADCTRL1_INIT_STATE; /* Set up ADCTRL1 register */
SPLK #8464,*+
.line 9
;>>>> ADCTRL2=ADCTRL2_INIT_STATE; /* Set up ADCTRL2 register */
SPLK #8706,*+
.line 10
;>>>> MAXCONV=3; /* Specify four conversions */
LACK 3
SACL * ,AR2
.line 12
;>>>> CHSELSEQ1=p->ChSelect; /* Configure channel selection */
LARK AR2,-3+LF1
MAR *0+
LAR AR4,* ,AR4
SSXM
ADRK 8
LAC * ,AR3
MAR *+
SACL * ,AR1
EPI0_1:
.line 13
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 21,000000000H,1
.sym _F2407_ADC_Read,_F2407_ADC_Read,32,2,0
.globl _F2407_ADC_Read
.func 25
;>>>> void F2407_ADC_Read(ADCVALS *p)
******************************************************
* FUNCTION DEF : _F2407_ADC_Read
******************************************************
_F2407_ADC_Read:
LF2 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,4
LAR AR0,*0+,AR3
.sym _p,-3+LF2,24,9,16,.fake0
.sym _DatQ15,1,4,1,16
.sym _Tmp,2,5,1,32
.line 2
;>>>> int DatQ15;
;>>>> long Tmp;
.line 6
;>>>> DatQ15 = (RESULT0>>1)&0x7FFF; // Convert result0 to Q15 (unipolar signal)
LARK AR3,28840
SSXM
LAC * ,14,AR2
ANDK 32767,15
LARK AR2,1
MAR *0+
SACH * ,1
.line 7
;>>>> Tmp = (long)(p->Ch1Gain*DatQ15); //Tmp= gain*dat => Q28 = Q13*Q15
SBRK 4-LF2
LAR AR4,* ,AR4
LT * ,AR2
ADRK 4-LF2
MPY *+
SPL *+
SPH *-
.line 8
;>>>> p->Ch1Out = (int)(Tmp>>13); //Convert Q28 to Q15
RSXM
LAC *+,3,AR0
SACH *,AR2
SSXM
LAC * ,3,AR0
OR *,AR4
ADRK 4
SACL * ,AR3
.line 10
;>>>> DatQ15 = (RESULT1>>1)&0x7FFF; // Convert result0 to Q15 (unipolar signal)
MAR *+
LAC * ,14,AR2
ANDK 32767,15
SBRK 2
SACH * ,1
.line 11
;>>>> Tmp = (long)(p->Ch2Gain*DatQ15); //Tmp= gain*dat => Q28 = Q13*Q15
LT * ,AR4
SBRK 3
MPY * ,AR2
MAR *+
SPL *+
SPH *-
.line 12
;>>>> p->Ch2Out = (int)(Tmp>>13); //Convert Q28 to Q15
RSXM
LAC *+,3,AR0
SACH *,AR2
SSXM
LAC * ,3,AR0
OR *,AR4
ADRK 4
SACL * ,AR3
.line 14
;>>>> DatQ15 = (RESULT2>>1)&0x7FFF; // Convert result0 to Q15 (unipolar signal)
MAR *+
LAC * ,14,AR2
ANDK 32767,15
SBRK 2
SACH * ,1
.line 15
;>>>> Tmp = (long)(p->Ch3Gain*DatQ15); //Tmp= gain*dat => Q28 = Q13*Q15
LT * ,AR4
SBRK 3
MPY * ,AR2
MAR *+
SPL *+
SPH *-
.line 16
;>>>> p->Ch3Out = (int)(Tmp>>13); //Convert Q28 to Q15
RSXM
LAC *+,3,AR0
SACH *,AR2
SSXM
LAC * ,3,AR0
OR *,AR4
ADRK 4
SACL * ,AR3
.line 18
;>>>> DatQ15 = (RESULT3>>1)&0x7FFF; // Convert result0 to Q15 (unipolar signal)
MAR *+
LAC * ,14,AR2
ANDK 32767,15
SBRK 2
SACH * ,1
.line 19
;>>>> Tmp = (long)(p->Ch4Gain*DatQ15); //Tmp= gain*dat => Q28 = Q13*Q15
LT * ,AR4
SBRK 3
MPY * ,AR2
MAR *+
SPL *+
SPH *-
.line 20
;>>>> p->Ch4Out = (int)(Tmp>>13); //Convert Q28 to Q15
RSXM
LAC *+,3,AR0
SACH *,AR2
SSXM
LAC * ,3,AR0
OR *,AR4
ADRK 4
SACL * ,AR3
.line 22
;>>>> ADCTRL2 |= 0x6000; // Reset the sequence
SBRK 10
LACK 24576
OR *
SACL * ,AR1
EPI0_2:
.line 24
SBRK 5
LAR AR0,*-
PSHD *
RET
.endfunc 48,000000000H,4
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -