各位朋友:
不知道大家有没有使用dspicc30提供的_IQ库,里面只包含了Q15和Q16的部分函数,Q16的函数里面连abs()函数都没有,mpy()函数莫名奇妙的不能用,编译提示是未定义,在库文件和库的头文件里面都能看到mpy()这个函数名,div()函数可以用。
我的编译器版本是v3.3,不知道是不是有更新的编译器版本或者更新的_IQ库。请用过这个库的朋友帮忙提示一下!!谢谢大家了。
以下是libq.h中_Q16函数的申明,
/*
* Prototypes for _Q16 Functions
*/
_Q16 _Q16acos(_Q16);
_Q16 _Q16acosByPI(_Q16);
_Q16 _Q16asin(_Q16);
_Q16 _Q16asinByPI(_Q16);
_Q16 _Q16atan(_Q16);
_Q16 _Q16atanByPI(_Q16);
_Q16 _Q16atanYByX(_Q16, _Q16);
_Q16 _Q16atanYByXByPI(_Q16, _Q16);
_Q16 _Q16cos(_Q16);
_Q16 _Q16cosPI(_Q16);
_Q16 _Q16exp(_Q16);
_Q16 _Q16log(_Q16);
_Q16 _Q16log10(_Q16);
_Q16 _Q16mac(_Q16, _Q16, _Q16);
_Q16 _Q16macNoSat(_Q16, _Q16, _Q16);
_Q16 _Q16neg(_Q16);
_Q16 _Q16norm(_Q16);
_Q16 _Q16power(_Q16, _Q16);
_Q16 _Q16random();
_Q16 _Q16reciprocalQ15(_Q15);
_Q16 _Q16reciprocalQ16(_Q16);
_Q16 _Q16shl(_Q16, short);
_Q16 _Q16shlNoSat(_Q16, short);
_Q16 _Q16shr(_Q16, short);
_Q16 _Q16shrNoSat(_Q16, short);
_Q16 _Q16sin(_Q16);
_Q16 _Q16sinPI(_Q16);
_Q16 _Q16tan(_Q16);
_Q16 _Q16tanPI(_Q16);
short _Q16sinSeries(_Q16, short, short, _Q16 *);
static inline _Q16 _Q16ftoi(float x) {
return (_Q16) (x * 65536);
}
static inline float _itofQ16(_Q16 x) {
return (float) x / 65536;
}
_Q16 _Q16mpy(_Q16,_Q16);
_Q16 _Q16div(_Q16,_Q16);
_Q16 _Q16divmod(_Q16,_Q16, _Q16 *); |