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

软件定时器

于 2023-04-15 发布 文件大小:69.11 kB
0 46
下载积分: 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 个回复

  • Linux电阻屏程序
    简单介绍电阻触摸屏的驱动程序,基于s3c2440芯片。
    2022-01-22 07:56:09下载
    积分:1
  • STC89C55+STA013+CH375设计读U盘 MP3设计
    STC89C55+STA013+CH375设计读U盘  MP3设计 完整代码
    2022-02-04 14:11:37下载
    积分:1
  • ralink 2870 3050 omnipeek抓包 支持双频
    应用背景 做wifi的都知道,ralink 2870 3050 omnipeek抓包驱动 支持双频。 new版本 ralink_usb2870v3245.zip 配合omnipeek6.5以上 支持抓AC, 不过 安装了这驱动之后 2870芯片的网卡就只能抓包用了,不能用作普通无线网卡。 版本 ralink_usb2870v14018.zip  可以抓包的同时 支持上网。不过貌似不支持5G 关键技术 ralink_usb2870v3245.zip(推荐) ralink_usb2870v14018.zip 不是exe的安装方式, 插入无线网卡之后,通过设备管理器找到该无线网卡,update 驱动, 选择ralink_usb2870v3245.zip解压后的目录 完成安装
    2022-01-31 23:29:22下载
    积分:1
  • LSM6DS33代码
    LSM6DS33 驱动代码,基于stm32编写,6轴加速度计和陀螺仪驱动.
    2022-07-08 16:11:56下载
    积分:1
  • 德国人的永磁同步电机的代码带注释
    资源描述一个德国人做的永磁同步电机的代码,可以给大家参考一下。算个砖吧。
    2022-03-23 18:26:15下载
    积分:1
  • PCI虚拟总线
    PCI虚拟总线 在windows驱动开发过程中,同一个硬件设备经常遇到几个驱动的情况,如多个串口驱动、GPIO驱动、I2C驱动等; 虚拟总线的目的是将这个硬件虚拟一条总线出来,这样在设备管理器里看到的就是多个硬件设备;在这些硬件设备中针对于各功能驱动实现。
    2022-05-23 09:05:35下载
    积分:1
  • RFID非接触式代码
    RFID有效的驱动代码,c编写,易于移植,适合于各种单片机,此RFID模块位非接触式的,可读写,控制内存块等。该驱动程序已在很多项目中实际应用。
    2022-08-21 07:37:36下载
    积分:1
  • 1651
    驱动1651芯片、包括初始化、读写数据、读写地址、 多用于点亮lcd屏、属于c代码、还包括该芯片的驱动条件、以及一些上升、下降沿的写法
    2023-08-07 11:15:03下载
    积分:1
  • 后台链接数据库
    应用背景package com.dao; import com.tool.JDBConnection; import java.util.*; import com.domain.UnitVO; import java.sql.*; public class UnitDao {   private JDBConnection connection = null;   public UnitDao() {     connection = new JDBConnection();     this.connection.creatConnection();   }关键技术利用jdbc链接数据库,定义链接程序,达到链接数据库的效果,本例用了jdbc是为了更好的操作数据库,jdbc起到了数据库和开发平台过度链接的作用
    2023-08-01 10:20:04下载
    积分:1
  • 8MFLASH的程序,STM32,使用SPI3,使用STM32管脚映射。
    8MFLASH的驱动程序,STM32驱动,使用SPI3,使用STM32管脚映射。
    2023-04-29 09:50:03下载
    积分:1
  • 696518资源总数
  • 104353会员总数
  • 66今日下载