⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dsin.lst

📁 用凌阳61单片机实现正弦信号的产生
💻 LST
📖 第 1 页 / 共 2 页
字号:
                     <      	//... 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 + -