搜索
bottom↓
回复: 5

[求助]怎么调用dsPIC30F的DSP来做乘/除运算(函数库找到了,但是运算结果不正确)!

[复制链接]

出0入0汤圆

发表于 2010-4-6 17:16:39 | 显示全部楼层 |阅读模式
初学dsPIC,用的DSPIC30F2002的芯片。但是看函数库,DSP内核的函数都是写FFT什么的复杂运算用的。简单的乘除法运算反倒还没有。第一次接触DSP芯片,不知道要怎么调用DSP内核来解乘除法。官网上找到个例子,照着写下来,但是用MPLAB SIM仿真发现C的值不会改变,不知道为什么,希望有经验的朋友帮忙解答一下DSP内核要怎么使用,感谢。
a=2.0;
b=2.0;
asm("MOV _a, W4");
asm("MOV _b, W5");
asm("MOV #_c,W0");
asm("MPY W4*W5,A");
asm("SAC A,[W0]");

出0入0汤圆

发表于 2010-4-6 19:43:12 | 显示全部楼层
C语言里面可以使用内建函数__builtin_XXX()这类的函数可以直接调用DSP内核来进行定点计算。

出0入0汤圆

发表于 2010-4-6 20:10:08 | 显示全部楼层
查MCC30的用户手册的附录,有内建函数,按LS的方法做。

出0入0汤圆

 楼主| 发表于 2010-4-7 09:55:03 | 显示全部楼层
感谢楼上二位,不过我试了一下乘法指令,但是却得不到正确的结果!
register int result asm("A");
int xVal=5, yVal=5,data;
       
result = __builtin_mpy(xVal, yVal,NULL, NULL, 0,NULL, NULL, 0);
data = __builtin_sac(result,0);
用软件仿真看到result中的值是0x32,但是data中的值却是0x0000.不知道为什么!
忘了指定DSP为整数运行了,结果是对了,但是却依然读取不出来,data还是等于0!

出0入0汤圆

发表于 2010-5-28 09:44:52 | 显示全部楼层
回复【3楼】liansh
-----------------------------------------------------------------------

你好,我现在也遇到调用函数库的问题,我现在函数库都没找到,能指点下吗?
感谢万分

出0入0汤圆

发表于 2010-6-27 11:04:07 | 显示全部楼层
这是什么
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-8 22:00

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表