for循环延时时间计算

发布时间:2024年01月10日

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

之前做led点亮的实验,好像是被delay函数影响了,因为delay参数设置的不对,led没有正常闪烁。现在就想搞明白一些。


一、pandas是什么?

百度了一些文档,好像并没有专门取说明这一块的。

然后看了一篇帖子,相对说的比较清晰一些。

他看了for循环的汇编指令,

? for(; nCount != 0; nCount--);?
0x08000206 E000 ? ? ?B ? ? ? ?0x0800020A
0x08000208 1E40 ? ? ?SUBS ? ? r0,r0,#1
0x0800020A 2800 ? ? ?CMP ? ? ?r0,#0x00
0x0800020C D1FC ? ? ?BNE ? ? ?0x08000208 ? ?

有3个指令,SUBS、CMP、BNE。其中SUBS和CMP都是单指令,BNE是3个机器周期。所以一条for循环一个指令周期需要5个机器周期。机器周期为主频的倒数。

如果时钟频率是72M,(1M = 1 * 10^6),那么机器周期就是t = 1 / 72M。

1s = 1000ms(毫秒),

1ms = 1000us(微秒),

1us= 1000ns(纳秒)。

所以一个机器周期t = 1.39 * 10 ^ -8s = 13.8ns;

一个for循环5个机器周期,所以一个指令周期 t2 = 69ns;

所以如果按照代码里的参数count=0xFFFFF的话, 循环时间就是t = 69ns * 1048575 = 72351675ns = 0.072s。

与预期不符。

但是如果主频按照8M来算,使用count = 1600000来for循环,时间为0.9936s。

该处使用的url网络请求的数据。


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

文章来源:https://blog.csdn.net/2301_77560238/article/details/135503502
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。