打印

关于2812IQmathlib的问题

[复制链接]
4089|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
simpledsp|  楼主 | 2008-9-24 21:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我加了它的cmd,库和头文件,怎么调用结果总为0啊
例子程序也不对
#include<IQmathLib.h>   /* Header file for IQmath routine     */ 
 
#define     PI  3.14156 
 
_iq in1, out1; 
_iq30 in2, out2; 
 
void main(void ) 
{  
 in1=_IQ(0.25*PI/PI);   
 out1=_IQsinPU(in1) ;    
 in2=_IQ30(0.25*PI/PI); 
 out2=_IQ30sinPU(in2);  
 while(1)
 {}

调用IQmath中的函数,怎么结果出来的都不对啊,帮忙看看哪儿出的问题

相关帖子

沙发
cpy1207| | 2010-1-28 19:16 | 只看该作者
我也碰到了同样的问题,顶

使用特权

评论回复
板凳
angelguard| | 2010-2-2 12:30 | 只看该作者
你的sin有问题,因为DSP中,sin是在BOOT-ROM中固化了一个表,当程序中遇到sin时,dsp会进入那个表中查找,当没有找到那个数时,他会选择输出为0.

使用特权

评论回复
地板
cpy1207| | 2010-2-4 19:49 | 只看该作者
那你说sin有什么问题呢?

使用特权

评论回复
5
snakeemail| | 2010-2-7 21:35 | 只看该作者
浮点???

使用特权

评论回复
6
angelguard| | 2010-2-8 23:07 | 只看该作者
晕,对于IQMATH,他的sin是通过查找BOOT-ROM来求得的,而BOOT-ROM的SIN表中不是每个值都能查到的,他只对应了若干个点,(具体几个点记不清了),如果找不到楼主写的那个点,他就显示0.
而一般的C语言中,如果要写sin,必须要添加'math.h'头文件,但如此运算速度会大为降低,这个和IQMATH是不一样的。

使用特权

评论回复
7
angelguard| | 2010-2-8 23:08 | 只看该作者
晕,对于IQMATH,他的sin是通过查找BOOT-ROM来求得的,而BOOT-ROM的SIN表中不是每个值都能查到的,他只对应了若干个点,(具体几个点记不清了),如果找不到楼主写的那个点,他就显示0.
而一般的C语言中,如果要写sin,必须要添加'math.h'头文件,但如此运算速度会大为降低,这个和IQMATH是不一样的。

使用特权

评论回复
8
流金岁月| | 2010-3-5 11:30 | 只看该作者
写法有问题,如下是乘法
    id=  _IQmpy(i_apha, *Pointer_Sin) - _IQmpy(i_bata,*Pointer_Cos);

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

7

帖子

0

粉丝