最近在使用dsPIC30F系列单片机计算东西,需要使用大量的乘法运算,单片机包含了DSP内核,不知道DSP内核怎么用,只在手册上查到几条DSP指令,不知道在C语言下怎么使用?默认编译乘法是使用的单片机指令。
我自己看了,编译后的指令时单片机指令,我主要是算乘法,大量乘法,编译后不是汇编指令!
unsigned int a=23,b=32,c;
c = a*b;
编译时候,C语言编译器会自动讲上述语句用DSP指令编译成汇编语句。
这个编译后默认是单片机指令,不是DSP指令!
C语言编译器自动给调用DPS指令,用C来写程序的话直接用普通的C语言运算符即可。不需要关注其他的。汇编下有专用的DSP指令,因为汇编是面向机器的语言。而C语言则是面向过程面向算法的语言,编程者不需要关注底层指令如何运算。如23×32,则是 unsigned int a=23,b=32,c; c = a*b;编译时候,C语言编译器会自动讲上述语句用DSP指令编译成汇编语句。 而对于快速傅里叶变换直流的操作,C语言并没有对应的操作指令,可以调用函数库里的DSP函数。你可以到Microchip网站找“16-Bit Language Tools Libraries”的参考手册。顺便看一下“16-bit MCU and DSC P
参考《dsPIC30/33程序员参考手册》--------------------------------------------------------------------------------------------------------------------使用嵌入汇编:unsigned int x=5000;unsigned