登录
首页 » 驱动 » 软件定时器

软件定时器

于 2023-04-15 发布 文件大小:69.11 kB
0 155
下载积分: 2 下载次数: 1

代码说明:

应用背景     我们在做单片机程序时,经常会用到多个定时器,这时我们就需要各个配置多个不同的TIMER,有时TIMER不够用,有时TIMER配置过多,标志过多,程序写着写着就乱了,就算是理清了,也会造成程序可读性差,可移植性低,对硬件依赖性强的缺点。     为了解决这个问题,我们可以用程序实现一个软件定时器,在内存允许的范围内,它可以实现无数个定时器、计数器功能,当需要一个定时器,只需要在程序里定义一个定时器变量,通过不同接口的调用,就可以实现定时功能;实现这一功能,只需要占用一个硬件定时器即可,大大减少了硬件TIMER的占用,提高了程序的可移植性,降低程序的复杂度。   关键技术     在这里,我们需要借鉴操作系统架构里的系统嘀嗒功能。先初始化一个硬件TIMER作为系统的心跳,用这个TIMER来驱动一个全局变量sys_pulse的递增;然后利用程序来查询变量当前值判断系统程序的执行时间,从而得现时间的间隔,再通过事件发送程序来通知任务定时已到。     一个软件定时器变量,至少需要包括三个元素,开始时间start_time,定时时长interval,事件内容event;     每当程序启动一个定时器,将当前系统的sys_pulse值赋于开始时间变量start_time, 设定定时器的定时时长interval, 和事件内容event, 然后在主循环里不断查询sys_pulse 是否大于 start_timer + interval,如果大于,则表明此定时器定时结束,然后调用事件发送函数告诉任务,定时已到,开始执行任务。     如果用户要移植此程序,只需要修改timer_init()内硬件TIMER的初始化程序即可,其它内容可以直接引用,不需要修改。   &

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • STM32F103R8T6 3 UART驱动程序
    STM32F103R8T6 3 UART驱动程序 采用中断方式接收。 测试通过
    2022-02-04 09:58:57下载
    积分:1
  • AD9858代码
    DDS芯片AD9858的源代码。测试通过。单频模式,扫频模式均可。内含文件:AD9858.C 
    2022-06-02 01:19:46下载
    积分:1
  • LM75A 驱动C51源码
    LM75A温度传感器资料及源代码,精度11位,比DS18B20稍低,但是性价比高于DS18B20
    2023-02-28 08:10:03下载
    积分:1
  • AVR单片机资料
    AVR MEGA128开发板全套资料,学习方便,有很多例程。
    2022-05-09 12:58:59下载
    积分:1
  • AVR128 SD卡数据读写实验
    avr128硬件平台和AVR GCC软件环境下测试,包含SD卡初始化,SD卡命令传送,写SD卡一个扇区,读SD卡一个扇区,单个SD卡命令传送,SD卡容量读取等各种函数,主程序用于测试SD卡是否能正常工作,mmc.c,mmc.h是SD卡的源文件和头文件
    2023-06-13 20:15:09下载
    积分:1
  • 探寻可靠的硬件 ID
    翻译 maninwest@Codeforge 作者:Michael N Haephrati (האפרתי)@CodeProject很多桌面应用开发员需要唯一识别出运行软件的计算机。这种身份识别必须能生成唯一的数据元素,每台计算机各不相同,并在同一台给定计算机上可重现相同的 ID。 WMI 的类Windows 提供了一组可以用于硬件枚举和身份识别任务的类,称为 WMI ( Windows Management Instrumentation), 是 Windows Driver Model (WDM) 的扩展。WMI 根据安装组件提供静态信息和更改的动态信息,可以在服务器上或者计算机使用多数编程语言进行本地和远程管理,枚举安装的组件并提醒发生的更改。我通过研究总结出,如果重视速度和可靠性的话,最好通过  Win32 API 访问硬件而不使用 WMI。我遇到了很多延迟,且在某些情况下, WMI 不能检测出 CPU ID 等元素。这里着重介绍不使用WMI 获取此数据的直接方法。获得唯一的 CPU ID似乎最好的方法是取样 CPU 唯一识别号 (或者CPU ID)。但是,这种选择有几个问题,让依赖读取 CPU ID 几乎不可能实现。首先,除了旧的奔腾 III,大多数 CPU 都没有唯一的  CPU  序列号。Intel 已经处于安全考虑移除了此功能。整个主板仍可以生成一个 ID ,这本是可以实现的,但是由于主板的类型很多制造商很多,让生成一个覆盖所有的唯一 ID 基本上不可能。一家名为 CPU ID 的法国公司在此方面做了很多研究,他们花费了很多资源来获得每个主板和 CPU
    2022-02-12 02:31:53下载
    积分:1
  • ccd驱动采集程序
    应用背景该资料是CCD的驱动程序,可用于开发无线扫描枪快递专用把枪,也可以用在数码相机上,该程序已经调试通过,敬请需要的人士下载,以供该者参考使用。关键技术ccd的生产厂家有好多家,一般都是国外知名公司,是成熟的ccd,有线阵ccd和面阵ccd,可以利用该ccd做些成像的产品,可以设计些位移传感器。
    2022-08-13 14:40:24下载
    积分:1
  • omapl138 nor flash 驱动
    omap l138 最新的nor  falsh 驱动,包插 erease ,write,read等函数哦。。。。 驱动适用于S29GL128P10TFC010。 已经经过大量的测试,是工业级成熟的代码。
    2023-08-17 15:45:03下载
    积分:1
  • 内核重载过驱动保护,绕过任何HOOK,C源码
    内核重载过驱动保护,绕过任何HOOK,C源码,VS2013+WDK8.0编译的驱动。WIN7 32下加载后,可以让OD或者CE工具过掉驱动保护,修改游戏数据
    2022-08-25 21:24:11下载
    积分:1
  • LED驱动源码
    这是基于ARM9开发板写的LED驱动测试代码,能够达到开关灯,流水灯等效果。这只是个例子代码,不做实际使用,不过是很好的驱动模板,大家可以学习学习,观摩观摩。大家一起学习。谢谢大家的支持。
    2022-08-04 10:15:11下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载