gygp
发表于 2024-5-6 19:20
可以计算每个循环所花费的时间。由于循环由3个指令组成,每个指令可能需要多个时钟周期,这取决于指令的类型和架构。通常,一个简单的赋值或算术运算可能需要1到几个时钟周期。
averyleigh
发表于 2024-5-6 22:24
F4系列的单片机,这款单片机内部有一个HSI(高速内部时钟)振荡器,频率为8MHz。这意味着每秒有800万个时钟周期。
zerorobert
发表于 2024-5-7 07:49
系统时钟源仍然是HSI,并且没有被更改。
juliestephen
发表于 2024-5-7 10:55
可以做一些大致的估算。假设powerup_delay()函数使用了一个简单的忙等待(busy-wait)循环,循环次数足够多以至于CPU在循环的大部分时间内都在执行循环体内的指令。在这种情况下,我们可以粗略估计延时的时间。
burgessmaggie
发表于 2024-5-7 14:18
不是每个指令都恰好在一个时钟周期内完成。某些指令可能需要多个时钟周期来执行。
uptown
发表于 2024-5-7 17:27
实际上,每个指令可能需要多个周期才能执行,特别是涉及内存访问或跳转的指令
febgxu
发表于 2024-5-7 20:39
指令实际上需要的时钟周期数多于 估计。
belindagraham
发表于 2024-5-8 13:11
一个简单的while循环,每次循环迭代都会消耗一定数量的时钟周期。
robertesth
发表于 2024-5-8 16:37
为了实现8秒的延时, 需要执行大约21,333,333个循环。这只是一个粗略的计算,实际的循环次数可能会因具体的指令和架构而有所不同。
chenqianqian
发表于 2024-5-8 20:57
你看一下power_delay函数里面的实现代码
digit0
发表于 2024-5-8 22:05
并非每条指令都在一个时钟周期内完成,有些指令可能需要多个时钟周期才能执行。
朝生
发表于 2024-5-9 22:24
指令实际上需要比估计的更多的时钟周期。
V853
发表于 2024-6-3 21:10
尽管优化选项是“无”,编译器可能仍然在一定程度上优化了代码。
理想阳
发表于 2024-6-4 10:41
Iar 优化设置为无,这意味着编译器不会优化代码,这可能会影响执行速度。
Pretext
发表于 2024-6-4 20:28
关于软延时问题,软延时主要是指在软件或程序中的延迟处理。当处理数据或事件时,可能会因为某些原因需要延迟一段时间再执行下一步操作,可以通过编程实现这种延时功能。具体实现方式可能因编程语言和应用场景而异。
芯路例程
发表于 2024-6-8 12:32
While 循环的主体包含三条指令,每条指令的执行时间取决于特定的处理器结构和时钟周期。
AIsignel
发表于 2024-6-8 16:27
如果循环体只有一个 nop,那么3个指令代表3个循环,即0,375μs。
埃娃
发表于 2024-6-28 18:15
是不是时钟还有倍频跟分频啊
suncat0504
发表于 2024-6-29 09:14
这种软件延迟都不是十分精确的。计算的时候,根据指令周期,乘以循环次数,得到延时数据,
鹿鼎计
发表于 2024-7-1 19:08
我想知道时钟是否有倍频和分频