0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于硬件延时和软件延时的内容以及它们的区别

Dp1040 来源:嵌入式专栏 2023-04-11 10:47 次阅读

单片机项目都会使用到延时,那么,该用软件延时还是硬件延时?它们又有什么区别呢?

今天就来讲讲关于硬件延时和软件延时的内容,以及它们的区别。

硬件和软件延时

延时的种类很多,先给大家普及一下延时相关概念和分类。

1.硬件延时 指利用具有计数功能的硬件进行延时。

比如:定时器Timer)、 实时时钟(RTC)、系统滴答定时器(SysTick)等具有计数功能的硬件。

2.软件延时 相对硬件延时而言,软件延时就是写一段软件代码,通过消耗CPU时间进行延时。

比如软件延时函数:


poYBAGQ0yluABPOCAAA186hoxPE380.jpg

阻塞和非阻塞延时

实际应用中,延时分阻塞和非阻塞延时。

1.阻塞延时 指CPU一直停留阻塞,不去做其它事情,直到延时结束结束。

像上面那个软件延时(Delay)就是一个典型的阻塞延时,一直消耗CPU,直到延时结束。

2.非阻塞延时 指在延时期间,没有阻塞CPU,也就是说CPU在延时期间可以执行其它代码。

比如:利用定时器中断延时,只需要开启定时器,在中断(计数)到来之前,CPU可以执行其它代码。

3.额外举例

a.利用定时器也能实现阻塞延时,比如STM32的HAL自带的阻塞延时:

pYYBAGQ0ynKAKkZBAACLQB8Kawk864.jpg

b.
利用RTOS自带的系统延时实现非阻塞延时,这个实现原理实际是利用了硬件延时(系统滴答定时器)。

当然,这个延时的原理(延时函数代码)相对比较复杂,对于普通用户只需要知道如何调用以及简单原理即可,感兴趣的老铁可以自行研究一下。

通常在一些RTOS的(Demo)例子的任务中都有系统延时,比如ucos非阻塞延时:


OSTimeDly(10);

bda9bdd4-d811-11ed-bfe3-dac502259ad0.png  

再比如FreeRTOS非阻塞延时:


vTaskDelay(10); 

bdba08a6-d811-11ed-bfe3-dac502259ad0.png  

硬件和软件延时区别

通过以上分析,其实不难得出,硬件延时相对软件延时更普遍。

1.软件相对硬件延时精度更差;

2.软件延时为阻塞延时,硬件延时可阻塞,也可非阻赛延时;

3.硬件延时应用更灵活、更广泛; ......

实际应用中,硬件延时、非阻塞延时相对更普遍。





审核编辑::刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6035

    文章

    44553

    浏览量

    634737
  • 定时器
    +关注

    关注

    23

    文章

    3246

    浏览量

    114739
  • FreeRTOS
    +关注

    关注

    12

    文章

    484

    浏览量

    62149
  • RTC
    RTC
    +关注

    关注

    2

    文章

    538

    浏览量

    66473

原文标题:单片机中延时还有这么多讲究?

文章出处:【微信号:玩点嵌入式,微信公众号:玩点嵌入式】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    揭秘:单片机硬件软件延时之大不同!

    在嵌入式项目中,软件开发基本上都会使用到延时,那么,该用软件延时还是硬件延时
    的头像 发表于 07-25 08:11 837次阅读
    揭秘:单片机<b class='flag-5'>硬件</b>与<b class='flag-5'>软件</b><b class='flag-5'>延时</b>之大不同!

    MSP430的软件延时硬件延时

    MSP430的软件延时硬件延时MSP430是超低功耗16位单片机,越来越受到电子工程师亲睐并得到广泛应用。C程序直观,可读性好,易于移植和维护,已被很多单片机编程人员所采用。MSP4
    发表于 07-31 17:59

    MCU硬件延时软件延时之间的区别是什么

    MCU硬件延时软件延时有什么区别?(阅读原文)
    发表于 11-24 08:30

    请问MCU硬件延时软件延时有什么区别

    在嵌入式项目中,软件开发基本上都会使用到延时,那么,该用软件延时还是硬件延时
    发表于 06-27 11:33

    51单片机延时函数计算问题以及如何准确延时的详细资料说明

    本文档的主要内容详细介绍的是51单片机延时函数计算问题以及如何准确延时的详细资料说明免费下载。
    发表于 04-15 18:24 2次下载
    51单片机<b class='flag-5'>延时</b>函数计算问题<b class='flag-5'>以及</b>如何准确<b class='flag-5'>延时</b>的详细资料说明

    FreeRTOS中相对延时与绝对延时区别

    FreeRTOS中相对延时和绝对延时区别
    的头像 发表于 03-12 10:32 8425次阅读
    FreeRTOS中相对<b class='flag-5'>延时</b>与绝对<b class='flag-5'>延时</b>的<b class='flag-5'>区别</b>

    关于STM32的计数与延时

    关于STM32的计数和延时
    的头像 发表于 03-12 11:20 6667次阅读

    MCU硬件延时软件延时有什么区别

    MCU硬件延时软件延时有什么区别?(阅读原文)
    发表于 11-16 10:21 16次下载
    MCU<b class='flag-5'>硬件</b><b class='flag-5'>延时</b>和<b class='flag-5'>软件</b><b class='flag-5'>延时</b>有什么<b class='flag-5'>区别</b>?

    单片机延时的相关概念和分类

    在嵌入式项目中,软件开发基本上都会使用到延时,那么,该用软件延时还是硬件延时
    的头像 发表于 05-11 13:23 2957次阅读

    相对延时和绝对延时区别

    嵌入式软件代码中延时是很常见的,只是延时种类有很多,看你用什么延时
    发表于 08-12 08:48 1753次阅读

    单片机硬件软件延时是啥意思?

    前不久有个读者在问关于延时的问题,大概就是问:软件延时硬件延时是啥意思?做项目时他俩有什么
    的头像 发表于 12-06 09:10 1442次阅读

    讲讲关于单片机硬件延时软件延时内容以及它们区别

    比如:定时器(Timer)、 实时时钟(RTC)、 系统滴答定时器(SysTick)等具有计数功能的硬件
    发表于 12-30 14:06 2075次阅读

    OFF延时和ON延时定时器的区别

    机械定时继电器和延时定时器用于延时电路控制触点的打开或闭合。它们的工作方式与控制继电器类似,主要区别在于定时继电器中的特定触点设计为在线圈通电或断电后的预定时间间隔后激活。   
    的头像 发表于 11-21 17:50 2548次阅读

    时间继电器通电延时与断电延时区别

    时间继电器通电延时与断电延时区别  时间继电器是一种常用的控制设备,可用于各种延时应用。常见的时间继电器主要包括通电延时继电器和断电
    的头像 发表于 02-04 13:43 4623次阅读

    延时保险丝的工作原理 延时保险丝和普通保险丝的区别

    将详细介绍延时保险丝的工作原理以及与普通保险丝的区别。 一、延时保险丝的工作原理 1.1 材料组成理论 延时保险丝通常由铜丝和陶瓷组成。铜丝
    的头像 发表于 03-05 17:06 5398次阅读