📄 sacmv32.lst
字号:
// while co-work with SACM library.
//
// See. following function for example:
// F_SP_SACM_A2000_Init_:
// F_SP_SACM_S480_Init_:
// F_SP_SACM_S240_Init_:
// F_SP_SACM_MS01_Init_:
// F_SP_SACM_DVR_Init_:
//////////////////////////////////////////////////
//.external R_InterruptStatus // declared in spce.asm
//////////////////////////////////////////////////
.define C_QueueSize 50
000007AE .RAM
000007AE 00 00 .VAR R_Queue
000007AF 00 00 00 00 .DW C_QueueSize-1 DUP(0)
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00
000007E0 00 00 .VAR R_ReadIndex
000007E1 00 00 .VAR R_WriteIndex
0000BECA .CODE
//////////////////////////////////////////////////////
// Ramp Functions
//////////////////////////////////////////////////////
////////////////////////////////////////////////////////
// Function: _SP_RampUpDAC1
// Description: Ramp Up before using DAC to avoid "bow" sound
// from speaker
// Syntax : SP_RampUpDAC1()
// Destory: R1,R2
////////////////////////////////////////////////////////
_SP_RampUpDAC1: .PROC
F_SP_RampUpDAC1:
0000BECA 90 D4 push r1,r2 to [sp]
0000BECB 11 93 17 70 r1=[P_DAC1]
0000BECD 09 B3 C0 FF r1 &= ~0x003f
0000BECF 09 43 00 80 cmp r1,0x8000
0000BED1 0E 0E jb L_RU_NormalUp
0000BED2 19 5E je L_RU_End
L_RU_DownLoop:
0000BED3 40 F0 36 BF call F_Delay
0000BED5 41 94 r2 = 0x0001
0000BED6 1A D5 12 70 [P_Watchdog_Clear] = r2
0000BED8 09 23 40 00 r1 -= 0x40
0000BEDA 19 D3 17 70 [P_DAC1] = r1
0000BEDC 09 43 00 80 cmp r1,0x8000
0000BEDE 4C 4E jne L_RU_DownLoop
L_RD_DownEnd:
0000BEDF 0C EE jmp L_RU_End
L_RU_NormalUp:
L_RU_Loop:
0000BEE0 40 F0 36 BF call F_Delay
0000BEE2 41 94 r2 = 0x0001
0000BEE3 1A D5 12 70 [P_Watchdog_Clear] = r2
0000BEE5 09 03 40 00 r1 += 0x40
0000BEE7 19 D3 17 70 [P_DAC1] = r1
0000BEE9 09 43 00 80 cmp r1, 0x8000
0000BEEB 4C 4E jne L_RU_Loop
L_RU_End:
0000BEEC 90 90 pop r1,r2 from [sp]
0000BEED 90 9A retf
.ENDP
////////////////////////////////////////////////////////
// Function: _SP_RampDnDAC1
// Description: Ramp down after using DAC to avoid "bow" sound
// from speaker
// Syntax : SP_RampDnDAC1()
// Destory: R1,R2
////////////////////////////////////////////////////////
_SP_RampDnDAC1: .PROC
F_SP_RampDnDAC1:
0000BEEE 90 D4 push r1,r2 to [sp]
//int off
0000BEEF 11 93 17 70 r1 = [P_DAC1]
0000BEF1 09 B3 C0 FF r1 &= ~0x003F
0000BEF3 0A 5E jz L_RD_End
L_RD_Loop:
0000BEF4 40 F0 36 BF call F_Delay
0000BEF6 41 94 r2 = 0x0001
0000BEF7 1A D5 12 70 [P_Watchdog_Clear] = r2
0000BEF9 09 23 40 00 r1 -= 0x40
0000BEFB 19 D3 17 70 [P_DAC1] = r1
0000BEFD 4A 4E jnz L_RD_Loop
L_RD_End:
0000BEFE 90 90 pop r1,r2 from [sp]
0000BEFF 90 9A retf
.ENDP
////////////////////////////////////////////////////////
// Function: _SP_RampUpDAC2
// Description: Ramp Up before using DAC to avoid "bow" sound
// from speaker
// Syntax : SP_RampUpDAC2()
// Destory: R1,R2
////////////////////////////////////////////////////////
_SP_RampUpDAC2: .PROC
F_SP_RampUpDAC2:
0000BF00 90 D4 push r1,r2 to [sp]
0000BF01 11 93 16 70 r1=[P_DAC2]
0000BF03 09 B3 C0 FF r1 &= ~0x003f
0000BF05 09 43 00 80 cmp r1,0x8000
0000BF07 0E 0E jb L_RU_NormalUp_
0000BF08 5D 5E je L_RU_End
L_RU_DownLoop_:
0000BF09 40 F0 36 BF call F_Delay
0000BF0B 41 94 r2 = 0x0001
0000BF0C 1A D5 12 70 [P_Watchdog_Clear] = r2
0000BF0E 09 23 40 00 r1 -= 0x40
0000BF10 19 D3 16 70 [P_DAC2] = r1
0000BF12 09 43 00 80 cmp r1,0x8000
0000BF14 4C 4E jne L_RU_DownLoop_
L_RD_DownEnd_:
0000BF15 0C EE jmp L_RU_End_
L_RU_NormalUp_:
L_RU_Loop_:
0000BF16 40 F0 36 BF call F_Delay
0000BF18 41 94 r2 = 0x0001
0000BF19 1A D5 12 70 [P_Watchdog_Clear] = r2
0000BF1B 09 03 40 00 r1 += 0x40
0000BF1D 19 D3 16 70 [P_DAC2] = r1
0000BF1F 09 43 00 80 cmp r1, 0x8000
0000BF21 4C 4E jne L_RU_Loop_
L_RU_End_:
0000BF22 90 90 pop r1,r2 from [sp]
0000BF23 90 9A retf
.ENDP
////////////////////////////////////////////////////////
// Function: _SP_RampDnDAC2
// Description: Ramp down after using DAC to avoid "bow" sound
// from speaker
// Syntax : SP_RampDnDAC2()
// Destory: R1,R2
////////////////////////////////////////////////////////
_SP_RampDnDAC2: .PROC
F_SP_RampDnDAC2:
//int off
0000BF24 90 D4 push r1,r2 to [sp]
0000BF25 11 93 16 70 r1 = [P_DAC2]
0000BF27 09 B3 C0 FF r1 &= ~0x003F
0000BF29 0A 5E jz L_RD_End_
L_RD_Loop_:
0000BF2A 40 F0 36 BF call F_Delay
0000BF2C 41 94 r2 = 0x0001
0000BF2D 1A D5 12 70 [P_Watchdog_Clear] = r2
0000BF2F 09 23 40 00 r1 -= 0x40
0000BF31 19 D3 16 70 [P_DAC2] = r1
0000BF33 4A 4E jnz L_RD_Loop_
L_RD_End_:
0000BF34 90 90 pop r1,r2 from [sp]
0000BF35 90 9A retf
.ENDP
//-------------------------------------------------------
// Function: F_Delay
// Description: Provide delay for Ramp up/down
// The delay time is adjustable by adjusting C_RampDelay
// Destory: R1
//-------------------------------------------------------
F_Delay:
0000BF36 88 D2 push r1 to [sp]
0000BF37 09 93 50 00 r1 = C_RampDelay; // Ramp Up/Dn delay per step
L_D_Loop:
0000BF39 41 22 r1 -= 1
0000BF3A 42 4E jnz L_D_Loop
0000BF3B 88 90 pop r1 from [sp]
0000BF3C 90 9A RETF
//////////////////////////////////////////////////////
// Queue Functions
//////////////////////////////////////////////////////
////////////////////////////////////////////////////////
// Function: _SP_InitQueue
// Description: Initiate queue for algorism use
// Syntax : SP_InitQueue()
// Destory: R1
////////////////////////////////////////////////////////
_SP_InitQueue: .PROC
_SP_InitQueue_A2000:
_SP_InitQueue_S530:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -