OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6583|回复: 2

关于STM32中float的问题,希望大侠们指教一下。

[复制链接]

6

主题

92

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2011-12-30
在线时间
2 小时
发表于 2013-7-26 21:52:35 | 显示全部楼层 |阅读模式
我在主函数中调用了 void spot_spot(float x_next,float y_next) 函数,为什么这个函数需要很长时间才执行完,后面显示函数很久才执行一次,明显感觉刷新速率下来了。
这是怎么回事?是不是float定义参数的问题?这个应该怎么处理呢,这个函数在C8051上运行就很正常,希望大家指正一下错误,谢谢。
float Quick_Sqrt( float number )
{
long int i;
unsigned char j;
float x2, y;
const float threehalfs = 1.5F;
x2=number*0.5F;
y=number;
i=*(long*) &y;         // 浮点数按BIT强行赋给长整形
i=0x5f3759df-(i>>1); // 没天理!!!!!
y=*(float*)&i;
for(j=0;j<1;j++) 
{
y=y*(threehalfs-(x2*y*y)); // 第1次叠代
}
return (1/y);
}

//点点微小运动函数
void spot_spot(float x_next,float y_next)
{  
float mtor_a_leth_next,mtor_b_leth_next;
float a_change,b_change;
int count_l,count_r;

mtor_a_leth_next=(x_next+15)*(x_next+15)+(115-y_next)*(115-y_next);
mtor_b_leth_next=(95-x_next)*(95-x_next)+(115-y_next)*(115-y_next);
mtor_a_leth_next=Quick_Sqrt(mtor_a_leth_next);//将要前进的那点的线段a的长度
mtor_b_leth_next=Quick_Sqrt(mtor_b_leth_next);

a_change=mtor_a_leth_next-mtor_a_leth_last;
b_change=mtor_b_leth_next-mtor_b_leth_last;
mtor_a_leth_last=mtor_a_leth_next;
mtor_b_leth_last=mtor_b_leth_next;
count_l=a_change/step_l+(a_change>=0?0.5:-0.5);
count_r=b_change/step_r+(b_change>=0?0.5:-0.5);
drive_motor(count_l,count_r);
x_last=x_next;
y_last=y_next;//将要走到的那个点的新坐标
}
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

92

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2011-12-30
在线时间
2 小时
 楼主| 发表于 2013-7-26 22:06:50 | 显示全部楼层
stm32f1xx系列没有浮点运算单元吗?
是不是用软件模拟的方式计算浮点数?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-26 22:55:31 | 显示全部楼层
回复【楼主位】Usart:
---------------------------------
可否仿真看看,具体哪句费时多?
回复【2楼】Usart:
---------------------------------
10x没有FPU的.所以是软件的方式实现的.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-16 11:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表