设为首页收藏本站

腾控科技论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3107|回复: 0

STM32F407乘,除,开方时间实验

[复制链接]
steelen 发表于 2016-9-9 14:15:00 | 显示全部楼层 |阅读模式

STM32F407乘,除,开方时间实验、

2013 06 01
fluke示波器
主时钟120M,每周期8.3ns


@@@@实验程序如下:@@@@@@

float  ta=3.14f;
float  te;
while(1)
{
OSTimeDlyHMSM(0,0,0,300);//300ms 延时
ta*=PI;
CPU_IntDis();//禁止中断
GPIO_SetBits(GPIOD,GPIO_Pin_11);//io置1
ta=ta*ta;//乘法
ta=ta*ta;
ta=ta*ta;
ta=ta*ta;//共100个



GPIO_ResetBits(GPIOD,GPIO_Pin_11);//io置0
ta=ta/PI;//除法
ta=ta/PI;
ta=ta/PI;


。//100个
GPIO_SetBits(GPIOD,GPIO_Pin_11);//io置1
ta=SQRT(ta);//开方
ta=SQRT(ta);
ta=SQRT(ta);
ta=SQRT(ta);


。//100个
GPIO_ResetBits(GPIOD,GPIO_Pin_11);//io置0
CPU_IntEn();//开中断

@@@@@实验结果@@@@@@@@


★★ 100个乘   6.4us,每个64ns。
一个乘法汇编如下: 共5个周期,理论上时间是(120m主频):41ns/每个
每个与实际差23ns
0x08006B8E ED9D0A01  VLDR          s0,[sp,#0x04]------------2个周期
0x08006B92 EE200A00  VMUL.F32      s0,s0,s0-----------------1个
0x08006B96 ED8D0A01  VSTR          s0,[sp,#0x04]------------2个


★★ 100个除  18.4us  每个184ns。
共20个周期,理论上时间是:166ns,
与乘法相比,每个差22ns
0x08007066 ED9D0A01  VLDR          s0,[sp,#0x04]--------2个周期
0x0800706A ED5F0A50  VLDR          s1,[pc,#-0x140]------2
0x0800706E EE801A20  VDIV.F32      s2,s0,s1-------------14
0x08007072 ED8D1A01  VSTR          s2,[sp,#0x04]--------2


★★ 100个开方,16us,每个160ns。
共18个周期,理论上150ns,差10ns   与除相比差16ns,正好符合2个周期时间。
0x0800772A EDDD0A01  VLDR          s1,[sp,#0x04]-------2
0x0800772E EEB10AE0  VSQRT.F32     s0,s1---------------14
0x08007732 ED8D0A01  VSTR          s0,[sp,#0x04]-------2

100个sin库函数,79.2us,每个792ns,0.792us。可以。
腾控T919宽温以太网PLC上市,集成4路热电阻(PT100),同时集成8路DI,4路DO(晶体管输出),8路AI,3个串口
您需要登录后才可以回帖 登录 | 注册

本版积分规则

产品样机试用申请

QQ|小黑屋|手机版|Archiver|腾控科技|腾控科技 ( 京ICP备09109731号  

GMT+8, 2020-10-25 06:39 , Processed in 0.113514 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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