📄 dsin.lst
字号:
< //... Define for P_LVD_Ctrl ...................
< .DEFINE C_LVD24V 0x0000 // LVD = 2.4V
< .DEFINE C_LVD28V 0x0001 // LVD = 2.8V
< .DEFINE C_LVD32V 0x0002 // LVD = 3.2V
< .DEFINE C_LVD36V 0x0003 // LVD = 3.6V
<
< //////////////////////////////////////////////////
< // Note: This register will map to the P_INT_Ctrl
< // (0x7010), The SACMvxx.lib use this register to
< // combine with user's interrupt setting
< //////////////////////////////////////////////////
< .EXTERNAL R_InterruptStatus
< //////////////////////////////////////////////////
<
<
< .EXTERNAL F_SP_RampUpDAC1
< .EXTERNAL F_SP_RampDnDAC1
< .EXTERNAL F_SP_RampUpDAC2
< .EXTERNAL F_SP_RampDnDAC2
<
< .EXTERNAL F_SP_InitQueue
< .EXTERNAL F_SP_InitQueue_A2000
< .EXTERNAL F_SP_InitQueue_S480
< .EXTERNAL F_SP_InitQueue_S240
< .EXTERNAL F_SP_InitQueue_MS01
< .EXTERNAL F_SP_InitQueue_DVR
<
< .EXTERNAL F_SP_ReadQueue
< .EXTERNAL F_SP_ReadQueue_A2000
< .EXTERNAL F_SP_ReadQueue_S480
< .EXTERNAL F_SP_ReadQueue_S240
< .EXTERNAL F_SP_ReadQueue_MS01
< .EXTERNAL F_SP_ReadQueue_DVR
<
< .EXTERNAL F_SP_WriteQueue
< .EXTERNAL F_SP_WriteQueue_A2000
< .EXTERNAL F_SP_WriteQueue_S480
< .EXTERNAL F_SP_WriteQueue_S240
< .EXTERNAL F_SP_WriteQueue_MS01
< .EXTERNAL F_SP_WriteQueue_DVR
<
< .EXTERNAL F_SP_TestQueue
< .EXTERNAL F_SP_TestQueue_A2000
< .EXTERNAL F_SP_TestQueue_S480
< .EXTERNAL F_SP_TestQueue_S240
< .EXTERNAL F_SP_TestQueue_MS01
< .EXTERNAL F_SP_TestQueue_DVR
<
< .EXTERNAL F_SP_ReadQueue_NIC // Read queue with no index change
< .EXTERNAL F_SP_ReadQueue_NIC_A2000
< .EXTERNAL F_SP_ReadQueue_NIC_S480
< .EXTERNAL F_SP_ReadQueue_NIC_S240
< .EXTERNAL F_SP_ReadQueue_NIC_MS01
< .EXTERNAL F_SP_ReadQueue_NIC_DVR
<
<
< .EXTERNAL F_SP_SACM_A2000_Init_
< .EXTERNAL F_SP_SACM_S480_Init_
< .EXTERNAL F_SP_SACM_S240_Init_
<
< .EXTERNAL F_SP_SACM_MS01_Init_
< .EXTERNAL F_SP_PlayMode0_
< .EXTERNAL F_SP_PlayMode1_
< .EXTERNAL F_SP_PlayMode2_
< .EXTERNAL F_SP_PlayMode3_
<
< .EXTERNAL F_SP_SACM_DVR_Init_
< .EXTERNAL F_SP_SACM_DVR_Rec_Init_
< .EXTERNAL F_SP_SACM_DVR_Play_Init_
<
< .EXTERNAL F_SP_GetResource
<
< //////////////////////////////////////////////////////////////////
< // Reserve old defintion
< // Note: Some user who use old library may use the old name
< //////////////////////////////////////////////////////////////////
< .EXTERNAL F_SP_Send_PWM // Get RAW data
< .EXTERNAL F_SP_Send_DAC1 //
< .EXTERNAL F_SP_Send_DAC2 //
<
< .EXTERNAL F_STD_Send_DAC1 // reserved old
< .EXTERNAL F_STD_Send_DAC2 // reserved old
<
< .EXTERNAL F_RampUpDAC1 // reserved old
< .EXTERNAL F_RampDnDAC1 // reserved old
< .EXTERNAL F_RampUpDAC2 // reserved old
< .EXTERNAL F_RampDnDAC2 // reserved old
< ///////////////////////////////////////////////////////////////////
<
<
<
< //========================================================================================
< // End of hardware.inc
< //========================================================================================
//=============================================================
// ----Function: unsigned int Uint_SIN(unsigned int Data);
// -Description: sin(x) = x - x3/6 + x5/120 - x7/5040
// --Parameters: 计算sin值,输入数据为Q15格式,输入为弧度,限制到0~0.5派
// -----Returns: 输出数据为Q15格式
// -------Notes: 118 Cycle
//=============================================================
00009DED .code
.PUBLIC _Uint_SIN
_Uint_SIN:
00009DED 01 97 r3 = r1 //r1中为x
00009DEE 09 F7 mr = r3*r1 //计算x2 Q30 (65536 - (10922 - (546 - 13*x2)*x2)*x2)*x
00009DEF 04 95 r2 = r4 //存x2 Q14 r2
00009DF0 74 96 r3 = 52
00009DF1 0A F7 mr = r3*r2
00009DF2 0B 97 22 02 r3 = 546
00009DF4 04 27 r3 -= r4
00009DF5 4B 97 r3 = r3 lsl 2
00009DF6 0A F7 mr = r3*r2
00009DF7 0B 97 AA 2A r3 = 10922
00009DF9 04 27 r3 -= r4
00009DFA 4B 97 r3 = r3 lsl 2
00009DFB 0A F7 mr = r3*r2
00009DFC 40 96 r3 = 0
00009DFD 04 27 r3 -= r4
00009DFE 09 F7 mr = r3*r1
00009DFF 04 93 r1 = r4
00009E00 90 9A retf
//=============================================================
// ----Function: unsigned int Uint_COS(unsigned int Data);
// -Description: cos(x) = 1 - x2/2 + x4/24 - x6/720 + x8/40320
// --Parameters: 计算COS值,输入数据为Q15格式,输入为弧度,限制到0~0.5派
// -----Returns: 输出数据为Q15格式
// -------Notes: 130 Cycle
//=============================================================
.PUBLIC _Uint_COS
00009E01 01 97 _Uint_COS: r3 = r1 //r1中为x
00009E02 09 F7 mr = r3*r1//计算x2 Q24 65536 - (32768 - (2731 - (91 - 1.6*x2)*x2)*x2)*x2)*X2
00009E03 04 95 r2 = r4 //存x2 Q14 r2
00009E04 47 96 r3 = 7
00009E05 0A F7 mr = r3*r2
00009E06 0B 97 5B 00 r3 = 91
00009E08 04 27 r3 -= r4
00009E09 4B 97 r3 = r3 lsl 2
00009E0A 0A F7 mr = r3*r2
00009E0B 0B 97 AB 0A r3 = 2731
00009E0D 04 27 r3 -= r4
00009E0E 4B 97 r3 = r3 lsl 2
00009E0F 0A F7 mr = r3*r2
00009E10 0B 97 00 80 r3 = 32768
00009E12 04 27 r3 -= r4
00009E13 43 97 r3 = r3 lsl 1
00009E14 0A F7 mr = r3*r2
00009E15 0B 97 00 80 r3 = 0x8000
00009E17 04 27 r3 -= r4
00009E18 03 93 r1 = r3
00009E19 90 9A retf
0 error(s), 0 warning(s).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -