微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > 那位朋友知道:三角函数为什么计算不对啊?

那位朋友知道:三角函数为什么计算不对啊?

时间:10-02 整理:3721RD 点击:
算不对是不是和程序空间有关系啊?

我现在主芯片是tms320c32,是不是软件版本低的原因啊?

怎么个不对法了,说的具体点。

比如计算的cos数值应该是0。543。可是程序计算的结果不是!

具体情况是这样的:当sin的地址是0x2554d时结果就对,这时在程序加几句程序(无关与sin)
使sin的地址变为0x2554d时,sin 计算就错了!

具体情况是这样的:当sin的地址是0x2554d时结果就对,这时在程序加几句程序(无关与sin)
使sin的地址变为0x2554d时,sin 计算就错了!

sin(x),x是用弧度表示的吗?而且不能太大。
你说的sin的地址是什么意思?

sin的地址就是SIN(X)函数的首地址啊,x是弧度,什么叫不能太大啊?

不能太大,就是超过3.1415926太多了,比如1000。
你说得两个地址都是0x2554d,是一样的呀,怎么你说“变为”呢?

对不起写错了,是这样的:sin(x)的首地址0x25549时,x=1.0,sin(x)=0.8414是对的。
当sin(x)的首地址0x2554d时,x=1.0,sin(x)=很大的数值,就错了。

也就是说sin(x)的首地址小于0x25549时就算的值都是对的

这种情况我没遇到过,觉得挺奇怪,待会测试一下。

能不能把sin函数放到前面的固定地址啊?

我觉得,只要能达到目的,放在哪儿无所谓。

现在是算不对,不知道怎么解决这问题啊!

你不是说sin(x)的首地址小于0x25549时就算的值都是对的吗?
怎么又不对了?

是这样的:程序小的时候可以算对,但现在程序还没编完,程序量在增加,就出现了sin地址
不段向后移动,计算不对了!

你可以编个子程序,把sin地址放在前面,这样可不可以?

我认为就是哪段程序写在前面,地址就在前面吧。
你可以试一试,看一看反汇编代码。

能不能给我找一个最新版本仿真tms320c32的软件啊?是不是库里的三角函数有问题啊?

可以用
#pragma CODE_SECTION 把某个函数的地址固定设置到某个位置。
具体使用方法请查看手册

老师库函数怎么固定在某一固定位置啊?自己定义的函数可以按你说的方法去做,可库函数不行啊!
怎么办啊?

库函数能不能用这个办法我不太清楚。
不过至少你可以把库函数的源代码找出来,然后直接加入到你的工程之中。TI都提供了库函数的源程序的,在CCS下面找找看。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top