那位朋友知道:三角函数为什么计算不对啊?
我现在主芯片是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下面找找看。