[STM32F7] NUCLEO144-F722评测-浮点运算**分形计算

[复制链接]
 楼主| 9robot 发表于 2017-3-30 12:56 | 显示全部楼层 |阅读模式
       在学习STM32是一直用的是正点原子的教程。之前看过有关Julia分形计算。感觉挺有意思,就自己试了试。在原子的程序基础上改了改,利用1.77寸的液晶屏来显示。效果还可以接受。修改的过程很简单,基本上了解了Julia分型的原理后,主要代码不用改,只是改一下和液晶屏显示有关的内容,我用的是串口屏,也没有使用F7自带的液晶屏接口,使用软件模拟的方式,刷屏速率较低。
  1. void GenerateJulia_fpu(u16 size_x,u16 size_y,u16 offset_x,u16 offset_y,u16 zoom)
  2. {
  3.         u8 i;
  4.         u16 x,y;  
  5.         float tmp1,tmp2;
  6.         float num_real,num_img;
  7.         float radius;
  8.         for(y=0;y<size_y;y++)
  9.         {
  10.                for(x=0;x<size_x;x++)
  11.                    {
  12.                        num_real=y-offset_y;
  13.                  num_real=num_real/zoom;
  14.                    num_img=x-offset_x;
  15.                   num_img=num_img/zoom;
  16.                    i=0;
  17.                   radius=0;
  18.                    while((i<ITERATION-1)&&(radius<4))
  19.                    {
  20.                              tmp1=num_real*num_real;
  21.                        tmp2=num_img*num_img;
  22.                       num_img=2*num_real*num_img+IMG_CONSTANT;
  23.                        num_real=tmp1-tmp2+REAL_CONSTANT;
  24.                        radius=tmp1+tmp2;
  25.                       i++;
  26.                    }
  27.                                   lcdbuf[128-x-1]=color_map[i];                  
  28.                }
  29.                             LTDC_Color_Fill(0,y,128-1,y+1,lcdbuf);       
  30.         }
  31. }


       对比完成一次Julia分型计算的时间,分四种情况进行对比:1、不开硬件加速,不适用硬件FPU;2、开硬件加速,不用硬件FPU;3、用硬件FPU,不使用硬件加速;4、使用硬件加速和硬件浮点运算
1、不开硬件加速,不适用硬件FPU,耗时2578.7毫秒

IMG_20170330_122742.jpg

2、开硬件加速,不用硬件FPU;耗时558.3毫秒

IMG_20170330_122832.jpg

3、用硬件FPU,不使用硬件加速,耗时554.3毫秒

IMG_20170330_124155.jpg

4、使用硬件加速和硬件浮点运算,耗时110.6毫秒

IMG_20170330_123419.jpg




这四种设置在比编译时都进行了优化,从结果上看,硬件浮点计算和硬件加速对于提高计算速度作用很明显,由于每刷一次屏过程中包含了和液晶屏有关的部分代码,所以不能直接按时间精确对比四种情况的效率,但是可以大概测试一下。

mmuuss586 发表于 2017-3-30 14:43 | 显示全部楼层

不错,谢谢分享;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

91

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部