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

2020-02-09 11:33发布

初学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]");
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
liansh
2020-02-09 20:43
感谢楼上二位,不过我试了一下乘法指令,但是却得不到正确的结果!
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!

一周热门 更多>