`
idisc
  • 浏览: 36107 次
  • 性别: Icon_minigender_1
  • 来自: 秦皇岛
最近访客 更多访客>>
社区版块
存档分类
最新评论

精确延时,不需考虑整数回转问题

阅读更多

提示:如有转载请注明作者 小游戏 及出处

 

#define time_after(a,b) ((long)(b) - (long)(a) < 0)
#define time_before(a,b) time_after(b,a)

#define time_after_eq(a,b) ((long)(a) - (long)(b) >= 0)
#define time_before_eq(a,b) time_after_eq(b,a)


void delaytime(unsigned long nTime)
{
    unsigned long nEndTime = ::GetTickCount() + nTime;
    while(1)
       {
            if (time_after(::GetTickCount(), nEndTime))
            {               
                break;
            }
            MSG msg;
            if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
            {   
                TranslateMessage(&msg);  
                DispatchMessage(&msg);  
            }
       }
}

 

 

2
0
分享到:
评论

相关推荐

    单片机软件精确延时

    单片机软件精确延时是单片机编程中一个至关重要的技术问题,它涉及到系统时钟、定时器配置、计数器操作以及程序设计等多个方面。在单片机应用开发中,精确延时通常用于控制硬件操作的时间间隔,如LED闪烁、脉冲产生...

    C语言精确延时方法

    在C语言编程中,实现精确延时是一项常见的需求,尤其在嵌入式系统或实时操作系统中,延时的精度对于程序的执行流程至关重要。本文将深入探讨如何在C语言中实现精确延时,并分析不同延时方法的优缺点。 1. **基于...

    c8051f单片机c程序精确延时的方法

    在探讨c8051f单片机C程序精确延时的方法之前,我们先来了解一下c8051f单片机的基本特性及其在嵌入式系统中的应用。c8051f系列单片机是由Silicon Labs公司设计生产的一款高性能、低功耗的混合信号单片机,其内部集成...

    Keil51中几种精确延时算法

    ### Keil51中几种精确延时算法 在嵌入式系统开发中,精确的延时算法对于控制系统的实时性和准确性至关重要。本文将基于提供的文件信息,深入探讨几种在Keil51环境下实现精确延时的方法,并分析每种方法的特点与应用...

    C51精确延时子程序

    在IT领域的嵌入式系统开发中,精确延时子程序是实现定时控制、信号同步等应用的关键技术之一。本文将深入解析C51精确延时子程序的设计原理、注意事项及其实现方法,帮助读者理解如何在C51单片机上创建高效、准确的...

    delphi 精确延时 函数

    然而,Sleep() 并不保证精确的延时时间,因为它会根据系统负载和优先级调整。当系统繁忙时,实际延时可能会比预期长。例如: ```delphi procedure DelayMilliseconds(Milliseconds: Integer); begin Sleep...

    单片机C语言精确延时计算器

    值得注意的是,虽然精确延时计算器能提供很高的延时精度,但实际应用中仍需考虑其他因素的影响,如CPU负载、中断处理等,这些都可能导致实际延时与理论计算有所偏差。因此,在设计系统时,可能需要进行实时性能测试...

    VC中基于 Windows 的精确延时(最全)

    在VC++编程环境中,开发Windows应用程序时,常常需要实现精确的延时功能,这在处理时间敏感的任务或者进行性能测试时尤为重要。本文将详细探讨如何在VC++中利用Windows API来实现这种精确延时。 首先,Windows API ...

    51单片机精确延时函数集锦

    - **精度问题**: 上述延时函数主要依靠循环次数来实现延时效果,实际延时会受到CPU执行效率的影响,因此在需要更高精度的场合下可能需要考虑使用硬件定时器。 - **中断处理**: 在使用延时函数时,如果同时有中断发生...

    stm32精确延时

    ### STM32精确延时详解:定时器与SysTick策略 在嵌入式系统开发中,精确延时是实现各种时间敏感应用的关键技术之一。STM32微控制器提供了多种方式来实现精确延时,其中使用最广泛的是定时器(Timer)和SysTick定时器...

    基于51单片机的精确延时(微秒级)

    例如,使用DIV指令进行除法运算会消耗较多的机器周期,因此在设计延时函数时需要将这些周期消耗考虑在内。 作者在文章末尾还提到,本文的前三部分延时函数是总结自他人的资料,而非本人原创,但最后一个实现任意...

    STM32系列精确延时程序(us级别 ms级别 )

    用示波器调试的stm32系列精确延时函数,在100us~500ms之间无误差

    C语言的精确延时程序

    在实现精确延时时,我们需要考虑到晶振的频率和CPU的时钟频率。不同的晶振频率和CPU时钟频率将导致不同的延时时间。因此,在设计精确延时程序时,需要根据实际情况进行调整。 在该程序中,我们还可以看到使用了at89...

    关于精确延时程序编写

    本文将详细探讨如何实现精确延时程序,主要分为硬件延时和软件延时两大类。 1. 硬件延时:硬件延时通常通过使用定时器/计数器来实现。定时器/计数器是微控制器内部的重要组成部分,能够根据外部晶振的频率产生精确...

    AVR单片机精确延时中断程序生成工具

    通过输入所需的延时时间,用户可以得到一段优化过的代码,这段代码能够在特定的AVR单片机型号上实现精确的延时效果,同时考虑到中断服务的影响,确保在执行延时过程中不被其他高优先级中断打断。 在AVR单片机中,...

    STM8S105定时器2精确延时.rar_STM8S105定时_stm8S105 定时器_stm8s105c6_定时器_精确延时

    STM8S105的定时器2的精确延时程序

    关于C语言精确延时程序

    通过合理设计循环结构、精确计算迭代次数,并充分考虑循环内外的所有延时因素,可以编写出满足高精度要求的延时程序。这对于提高嵌入式系统的性能和可靠性具有重要意义。在实际开发过程中,应根据具体的应用场景和...

    STC单片机C语言精确延时

    这些指令时间在编写延时函数时必须被考虑进去,以确保延时的精确性。 综上所述,STC单片机的精确延时涉及到对微秒级延时函数的设计、10微秒级延时函数的优化以及通过中断服务函数实现毫秒级的延时。通过对单片机...

    C语言及汇编语言精确延时

    为了精确计算延时时间,需要考虑循环内部的每条指令执行时间和循环结构本身带来的额外延迟。在给出的示例中,作者详细解释了如何计算每个延时子程序的实际延时时间。例如,对于500ms的延时,总延时时间由三层循环和...

    C语言中精确延时的方法

    首先,我们要明白,C语言本身并不直接支持精确延时,它依赖于底层硬件的定时器或循环计数来实现。对于51单片机,通常使用的是一种基于循环计数的方法,这种方法依赖于单片机的晶振频率。假设晶振频率为12MHz,即每个...

Global site tag (gtag.js) - Google Analytics