EDA365电子论坛网
标题:
DSPIC30F系列单片机中DSP内核的使用方法
[打印本页]
作者:
three
时间:
2021-10-18 09:46
标题:
DSPIC30F系列单片机中DSP内核的使用方法
最近在使用dsPIC30F系列单片机计算东西,需要使用大量的乘法运算,单片机包含了DSP内核,不知道DSP内核怎么用,只在手册上查到几条DSP指令,不知道在C语言下怎么使用?默认编译乘法是使用的单片机指令。
8 b' @ @1 b! V+ K6 F+ D" [( I
6 m( Y/ A& ?' _
我自己看了,编译后的指令时单片机指令,我主要是算乘法,大量乘法,编译后不是汇编指令!
/ h8 c; h8 j B8 y
+ s# o; ?. x* o6 ]4 K& G% C
unsigned int a=23,b=32,c;
0 J) r" e) ~- \' O! k
c = a*b;
; `5 @& K, _; m" x/ z$ l8 N
编译时候,C语言编译器会自动讲上述语句用DSP指令编译成汇编语句。
1 }6 B+ m9 R/ ^9 \2 S. c7 a
# G; ~2 A. E L; Q+ F' a% |
这个编译后默认是单片机指令,不是DSP指令!
) `8 j) Y: C! P; l; |- X9 s! K( F+ f
作者:
cyberbot8
时间:
2021-10-18 11:03
C语言编译器自动给调用DPS指令,用C来写程序的话直接用普通的C语言运算符即可。不需要关注其他的。
) ]) R. s8 S$ j6 y: P" S. c
汇编下有专用的DSP指令,因为汇编是面向机器的语言。而C语言则是面向过程面向算法的语言,编程者不需要关注底层指令如何运算。
* ^: o% z: L4 b. w L7 W8 W
如23×32,则是
+ _1 t8 X( k. K+ a( F$ M# J) `# k
unsigned int a=23,b=32,c;
# d7 g% B8 V. |2 X. W" {
c = a*b;
2 D- P* R* w" A9 k- }) o }! ~
编译时候,C语言编译器会自动讲上述语句用DSP指令编译成汇编语句。
2 d b4 y5 E/ D6 a9 W/ a. \9 N
, @9 V( ~, |' u# e0 e, A; o
作者:
land
时间:
2021-10-18 11:23
原来用过,就是支持一些dsp指令的pic单片机,在一些对数字信号处理速度要求较高的场合会使用,比如某些高档变频器、编解码、数字滤波器等
1 k5 m# O- W$ r1 p- Y: Q& Y* V
作者:
mqerew
时间:
2021-10-18 13:14
我在是使用dsPIC30F5011,正在开发CAN接口。DSP内核还没涉及到。
6 N& V% w/ m& L( Q& {2 N6 }7 ^
$ K7 Z* H4 x4 y, n( A! C. ~
是不是只要进行浮点数的运算,就会自动转到DSP内核来运算。
5 c$ ~6 [. I" @8 Z5 s
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2