Part Number:TMS320F28027
三个变量分别定义如下:uint16_t a ,uint16_t b,float c
问题如下:
1.当一个整型与浮点数相加结果是浮点数还是整型?相加的时候是否要把整数b先强制转换为浮点数?乘法运算后因为要赋值给整型变量a,那么此时是否需要强制把乘积转换为整型数?
a=b+c;
因为c是浮点数,那么这时候是否需要把变量b先转换为float再与变量c相加?
2.当一个整型与浮点数相乘结果是浮点数还是整型?相乘的时候是否要把整数b先强制转换为浮点数?
a=b*c;
谢谢!
Green Deng:
你好,因为你附上的芯片型号是F28027,也就是定点芯片。如果是定点芯片的话,整型和浮点型运算都是转换为IQ格式进行计算的,计算结果也是IQ格式
如果是在浮点芯片,那么整型b和浮点c的运算结果是浮点型,再将结果赋值给整型a的话应该会自动整数后面的小数部分,把整数赋值给a。
,
jun liu:
转IQ太麻烦了 难道直接相加和相乘不可以?
,
jun liu:
我在25us的中断中使用_IQmpy 和_IQsin导致程序执行很慢 而且程序不执行printf函数 这是为什么?
,
jun liu:
我在25us中断中的代码如下:
spwmiqvar.sina = IQSIN_A+_IQ(spwmiqvar.spwm_cnt*SIN_B);// spwmiqvar.sinvale =_IQsin(spwmiqvar.sina); spwmiqvar.sinb =_IQmpy(spwmiqvar.M_FACTOR,spwmiqvar.sinvale); spwm_value=1000+1000*_IQtoF(spwmiqvar.sinb);
导致程序执行很慢 ,难道使用IQ还要设置什么?使用的过程中调用了fs_add28.asm和 fd_mpy28.asm 感觉程序一直在这两个文件当中
请问这怎么解决?
是不是要添加这个文件?谢谢!
,
Green Deng:
你看了一下,这个问题你是已经发了新帖了?我已经分配工程师升级了,还请等待工程师回复
e2echina.ti.com/…/tms320f28027-25us-iqmath
,
jun liu:
好的 谢谢您 因为SPWM 逆变需要浮点数 太感谢