TI中文支持网
TI专业的中文技术问题搜集分享网站

28035的CLA使用中float与int类型互相转换结果出错的问题请教

公司有一款产品使用CLA模块一切正常,现把这部分程序移植到另一款产品上,都是用28035,CCS5.3,编译与链接设置相同,但是移植完之后发现,除CLA模块之外的代码运行一切正常,但是主CPU传递给CLA的int类型变量转成float类型计算,再转成int返回之后,与预期结果不符;怀疑是类型转换的问题,于是传递一个常数1000到CLA,转换为float赋值给CLA变量,再转换为int返回主CPU,观察到该数变为992;常数换成2000,结果就是1984;还请各位指教,可能是哪里的问题。

xi ge:

有没有用SVPWM做单相逆变的朋友?

 

公司有一款产品使用CLA模块一切正常,现把这部分程序移植到另一款产品上,都是用28035,CCS5.3,编译与链接设置相同,但是移植完之后发现,除CLA模块之外的代码运行一切正常,但是主CPU传递给CLA的int类型变量转成float类型计算,再转成int返回之后,与预期结果不符;怀疑是类型转换的问题,于是传递一个常数1000到CLA,转换为float赋值给CLA变量,再转换为int返回主CPU,观察到该数变为992;常数换成2000,结果就是1984;还请各位指教,可能是哪里的问题。

hujun zhou:

问题已解决。

这个问题是一个大坑,DSP的int与short应该都是16位长,但是如果一个函数的形参是int,引用函数的时候传递一个short变量进去编译会报错;出现上面问题的原因就在这里,没加入CLA之前,变量定义一般都使用int;加入CLA的时候,同时加入了几个相关的.h文件,这些文件重新typedef了U16、S16等为相应的short类型,但是在编译的时候会跟之前的定义冲突,本人很不幸,把所有short都修改为了int,编译完成后,除CLA外一切正常,但是CLA与主CPU传递数据的时候,int与float转换就出错了;把程序里所有的int定义都修改为short,此问题解决。

公司有一款产品使用CLA模块一切正常,现把这部分程序移植到另一款产品上,都是用28035,CCS5.3,编译与链接设置相同,但是移植完之后发现,除CLA模块之外的代码运行一切正常,但是主CPU传递给CLA的int类型变量转成float类型计算,再转成int返回之后,与预期结果不符;怀疑是类型转换的问题,于是传递一个常数1000到CLA,转换为float赋值给CLA变量,再转换为int返回主CPU,观察到该数变为992;常数换成2000,结果就是1984;还请各位指教,可能是哪里的问题。

hujun zhou:

问题已解决。

这个问题是一个大坑,DSP的int与short应该都是16位长,但是如果一个函数的形参是int,引用函数的时候传递一个short变量进去编译会报错;出现上面问题的原因就在这里,没加入CLA之前,变量定义一般都使用int;加入CLA的时候,同时加入了几个相关的.h文件,这些文件重新typedef了U16、S16等为相应的short类型,但是在编译的时候会跟之前的定义冲突,本人很不幸,把所有short都修改为了int,编译完成后,除CLA外一切正常,但是CLA与主CPU传递数据的时候,int与float转换就出错了;把程序里所有的int定义都修改为short,此问题解决。

公司有一款产品使用CLA模块一切正常,现把这部分程序移植到另一款产品上,都是用28035,CCS5.3,编译与链接设置相同,但是移植完之后发现,除CLA模块之外的代码运行一切正常,但是主CPU传递给CLA的int类型变量转成float类型计算,再转成int返回之后,与预期结果不符;怀疑是类型转换的问题,于是传递一个常数1000到CLA,转换为float赋值给CLA变量,再转换为int返回主CPU,观察到该数变为992;常数换成2000,结果就是1984;还请各位指教,可能是哪里的问题。

Eric Ma:

回复 hujun zhou:

hujun

下面的数据格式参考:

Eric

公司有一款产品使用CLA模块一切正常,现把这部分程序移植到另一款产品上,都是用28035,CCS5.3,编译与链接设置相同,但是移植完之后发现,除CLA模块之外的代码运行一切正常,但是主CPU传递给CLA的int类型变量转成float类型计算,再转成int返回之后,与预期结果不符;怀疑是类型转换的问题,于是传递一个常数1000到CLA,转换为float赋值给CLA变量,再转换为int返回主CPU,观察到该数变为992;常数换成2000,结果就是1984;还请各位指教,可能是哪里的问题。

liang wang:

回复 hujun zhou:

哎 丫丫 这真是坑啊我才发现

赞(0)
未经允许不得转载:TI中文支持网 » 28035的CLA使用中float与int类型互相转换结果出错的问题请教
分享到: 更多 (0)