DSP的C语言心得记录-利用CCS分析DSP的时钟运行周期
[复制链接]
分别用C语言和汇编语言进行程序设计,计算正弦函数值,并比较代码效率。
1)C语言编程
#include
#define NX 180
//最大正弦角度
#define pi 3.14159
short i;
double x[NX]
//定义输入正弦角度数组(弧度值)
double r[NX]
//定义输出正弦结果数组
void main(void)
{
for (i=0;i
//将角度转换为弧度
{ x=pi*i/180;
r=sin(x);
//计算正弦值
}
return;
}
程序编译连接通过后,加载生成的.out文件,点击“Run”图标运行程序。我们在“Watch”窗口中可以观察输出的正弦值数组r。(见图1)
利用CCS图形工具可以观察这段数据的波形。注意CCS图像显示参数设置中,正确填入数据的起始地址,数据长度设为180,数据类型要设为32位浮点数。(见图2)
2)汇编语言编程
用汇编语言计算正弦值,一般采用泰勒级数展开的方法。角度正弦值的泰勒级数展开式如下:(见图3)
其中:x为弧度值。
注意:
l
x从0~1,原因是CPU寄存器ST1中的FRCT位为1,CPU处于小数模式。
l
程序文件中所有标号左对齐。