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

📄 dsin.asm

📁 凌阳单片机控制ad9850来产生正弦波信号1KHz-10MHz的源代码
💻 ASM
字号:
.include 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
//============================================================= 
.code
.PUBLIC _Uint_SIN
_Uint_SIN: 
	
	r3 = r1   //r1中为x
     mr = r3*r1 //计算x2 Q30   (65536 - (10922 - (546 - 13*x2)*x2)*x2)*x
     r2 = r4   //存x2 Q14 r2
     r3 = 52
     mr = r3*r2
     r3 = 546
     r3 -= r4
     r3 = r3 lsl 2
   mr = r3*r2
     r3 = 10922
     r3 -= r4
     r3 = r3 lsl 2
     mr = r3*r2
     r3 = 0
     r3 -= r4
     mr = r3*r1
     r1 = r4
   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
_Uint_COS: r3 = r1   //r1中为x
     mr = r3*r1//计算x2 Q24   65536 - (32768 - (2731 - (91 - 1.6*x2)*x2)*x2)*x2)*X2
     r2 = r4   //存x2 Q14 r2
     r3 = 7
     mr = r3*r2
     r3 = 91
     r3 -= r4
     r3 = r3 lsl 2
     mr = r3*r2
     r3 = 2731
     r3 -= r4
     r3 = r3 lsl 2
   mr = r3*r2
     r3 = 32768
     r3 -= r4
     r3 = r3 lsl 1
     mr = r3*r2
     r3 = 0x8000
     r3 -= r4
     r1 = r3
   retf

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -