发新帖我要提问
12
返回列表
打印
[AT32F403/403A]

for 循环,延时的时间长度相差两三倍。

[复制链接]
楼主: 玄德
手机看帖
扫描二维码
随时随地手机跟帖
21
如果for循环体内包含复杂的操作或者函数调用,那么这些操作的执行时间将会影响总的延时。即使循环次数相同,不同的循环体内容也会导致不同的延时。

使用特权

评论回复
22
sheflynn| | 2024-11-8 21:33 | 只看该作者
中断服务例程 的执行会打断主程序的执行,包括延时循环。如果在延时期间发生了中断,实际的延时时间会比预期长。

使用特权

评论回复
23
deliahouse887| | 2024-11-8 22:29 | 只看该作者
晶振的实际频率可能与标称频率有轻微差异,这会导致延时时间的误差。

使用特权

评论回复
24
qiufengsd| | 2024-11-8 22:50 | 只看该作者
在延时期间禁用中断,可以避免中断处理时间对延时的影响。

使用特权

评论回复
25
chenjun89| | 2024-11-8 22:56 | 只看该作者
这种for循环有点浪费CPU效率

使用特权

评论回复
26
maudlu| | 2024-11-9 08:06 | 只看该作者
使用定时器是最准确的方法来实现延时。定时器可以在硬件层面精确控制延时时间。

使用特权

评论回复
27
sesefadou| | 2024-11-9 10:03 | 只看该作者
不同的指令可能需要不同的时钟周期来执行,因此即使循环次数相同,如果循环体内的指令不同,延时也会有所差异。

使用特权

评论回复
28
olivem55arlowe| | 2024-11-9 12:09 | 只看该作者
现代编译器通常会对代码进行优化,以提高程序的运行效率。这种优化可能导致for循环的执行时间发生变化。

使用特权

评论回复
29
maudlu| | 2024-11-9 14:11 | 只看该作者
单片机的时钟频率决定了指令的执行速度。如果时钟频率不稳定或者在不同的运行条件下有所变化(如温度变化、电源电压波动),那么for循环产生的延时也会有所变化。

使用特权

评论回复
30
houjiakai| | 2024-11-9 16:08 | 只看该作者
如果单片机在运行for循环时接收到中断,并且中断处理程序执行了较长时间,那么这将会打断延时循环,导致实际的延时时间变长。

使用特权

评论回复
31
youtome| | 2024-11-9 18:08 | 只看该作者
循环体内的代码量会影响循环的执行时间。即使循环体内没有明显的内容,编译器也可能插入一些额外的指令,如空操作(NOP)。

使用特权

评论回复
32
belindagraham| | 2024-11-9 20:02 | 只看该作者
为了避免优化影响,可以在循环体内加入一些“无用”的操作,如NOP(无操作)指令,或者使用volatile关键字来防止编译器优化掉某些变量。

使用特权

评论回复
33
janewood| | 2024-11-9 22:02 | 只看该作者
不同的编译选项可能会影响编译器的优化策略,进而影响for循环的延时长度。

使用特权

评论回复
34
单芯多芯| | 2024-11-10 07:37 | 只看该作者
这种阻塞形式的延迟会受到许多因素的影响,尤其是在有中断的情况下

使用特权

评论回复
35
hilahope| | 2024-11-10 09:50 | 只看该作者
使用硬件定时器来实现更精确的延时,而不是依赖软件循环。

使用特权

评论回复
36
usysm| | 2024-11-10 11:50 | 只看该作者
如果有中断处理程序在运行,中断处理时间会叠加到延时时间上,导致实际延时时间变长。

使用特权

评论回复
37
jonas222| | 2024-11-10 13:27 | 只看该作者
循环计数器的数据类型(如int、long等)也会影响循环的执行时间,因为不同类型的数据处理可能需要不同的指令周期。

使用特权

评论回复
38
houjiakai| | 2024-11-10 15:22 | 只看该作者
不同单片机的时钟频率可能有所不同,导致每个指令的执行时间(即时钟周期)存在差异。

使用特权

评论回复
39
mnynt121| | 2024-11-10 16:58 | 只看该作者
单片机的机器周期和指令周期也会影响for循环的延时长度。即使时钟频率相同,不同单片机的机器周期和指令周期也可能不同,从而影响延时时间。

使用特权

评论回复
40
noDevice| | 2024-11-10 17:00 | 只看该作者
建议使用MCU内的定时器/计数器模块来产生延迟,而不要依赖for环路。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则