单片机中用软件实现延时有哪两种方法?有何特点

单片机中用软件实现延时有哪两种方法?有何特点,第1张

1、循环延时:采用循尘晌空环语句,如for,while等,进行长时间的空 *** 作,或者空语句。

优点:程序理解简易,入手快,新手必备武器!

缺点:时间精度不高,且占用单片机大量时间资源,引发其它子函数的不流畅(卡滞、迟钝),导致系统实时反应能力下降。

2、定时延时:采用定时器定时,如T0,T1;

优点:时间精度高,提高系统程序执行的高效性,不影响子函数的正常运行。

缺点:派瞎需占用1个定时器资源(可以复用),需良好程序构架支谨凳持,入手难。

个人建议:一旦学会定时器,就不应该再使用“循环延时”函数,采用定时器才是正道。如果对延时精度要求不高,建议使用结构体组成多个延时体。

for循环和while循环的优缺点如下:

1、在for循环搭或中,循环控制变量的初始化和修改都放在语句头部分,形咐枝迹式较简洁,且特别适用于循环次数已知的情况。

2、在while循环中,循环控制变量的初始化一般放在while语句之前,循环控制变量的修改一般放在循环体中,形式衡并上不如for语句简洁,但它比较适用于循环次数不易预知的情况(用某一条件控制循环)。

3、两种形式各有优点,但它们在功能上是等价的,可以相互转换。

在STM32的while循环中使用延时,如果延时时间太短,会导致CPU一直处于忙等待状态,无法处理其他任务。这种情况下程序可能会出现卡死、响应缓慢等问题。

为了避免这种情况发生,可以采用以下几种方法:

1. 使用定时器:在STM32中可以通过配置定时器来实现精确的延时功能。具体做法是设置一个计数值,并将其赋给定时器寄存器,在每猛李唤羡个计数周期结束后触发中断并清零计数值。通过调整计数值和预分频系数即可实现不同长度的延迟。

2. 使用RTOS系统:RTOS(Real-Time Operating System)是一种专门用于嵌入式系统开发的 *** 作系统。它提供了多线程、任务管理、消息队列等功能,能够有效地解决多任务协作和资源共享问题。

3. 采用低功耗模式:在需要长时间延迟的场景下,可以考虑进入低功枝链迟耗模式以降低CPU负载和能耗消耗。例如,在需要10秒钟以上的延迟场景下,可以选择进入睡眠模式或者停止模式,并设置唤醒条件以保证及时响应外部事件。

总之,在STM32开发过程中,应该尽量避免在while循环中使用延时,而是采用定时器、RTOS系统或者低功耗模式等方法来实现精确的延迟功能。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11974227.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存