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

软件定时器

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

  • 智能寻迹小车+GPRS短信
    5路红外传感器实现黑白线寻迹,通过GPRS芯片实时发送车载温度,利用RFID高频读卡技术实现对小车的实时定位
    2023-02-22 06:45:03下载
    积分:1
  • FM24C256
    用先进的铁电技术制造的 256K位的非易失性存储器.铁电随机存储器 (FRAM)具有非易失性,并且可以象RAM一 样快速读写,数据在掉电后可以保存10年;本驱动可实现从此芯片中存取数据功能。
    2022-02-03 06:26:29下载
    积分:1
  • MCU BLDC 电机 过零
    最精帮别人在写一个无感无刷电机控制的程序,由于个人水平和理解不透彻,造成进度严重滞后,特将代码上传网高手给予知道,再次不胜感激
    2022-02-02 08:53:41下载
    积分:1
  • qrmark 通用二维条码编码工具
    active 控件关于二维码的:
    2022-04-11 18:05:11下载
    积分:1
  • 流水灯显示系统
    修改通过单片机的口输出信号控制发光二极管,实现闪烁,顺序闪亮,反向逐个点亮,能拼接出想要的图像或文字显示
    2023-08-05 15:30:04下载
    积分:1
  • stm32音乐播放器
    下载此程序你就可以通过stm32做个音乐播放器玩玩,对初学者帮助很大的
    2022-12-12 19:25:03下载
    积分:1
  • Coded UI Test中的数据测试
     有关什么是Coded UI Test以及如何使用Coded UI Test可以查看我的另一篇文  本文主要介绍如何在Coded UI Test中使用数据驱动测试。考虑这样一个场景:开发人员提交了一个函数,该函数实现了一个数学公式的运算,通过接收两个数字并进行数学运算给出结果。测试人员根据给定的数学公式,需要考虑提供各种不同情况的值来循环测试该函数。显然,我们需要提供一个数据源,根据数据源中提供的不同的值来进行自动化测试。这是最常见的数据驱动测试的案例。在基于Coded UI Test的Webpage自动化测试中,浏览器兼容性问题是通常要考虑的,我们可以在数据源(数据源可能是一个记事本或者一个简单的Excel表格)中提供要测试的浏览器的名称和版本号,然后让Coded UI Test自动加载不同的浏览器来循环测试目标页面。下面的内容会介绍这些方法。  这里有两篇文章详细描述了如何通过[DataSource]特征属性来完成数据驱动Coded UI Test。其基本思想是通过在TestMethod前面添加[DataSource]特征属性,并指定数据源的类型和位置,然后Coded UI Test的测试方法在运行时会自动读取数据源中的数据,在迭代中完成比对。
    2022-08-14 05:30:31下载
    积分:1
  • KiDispatchException 和 NtRaiseException inline hook
    应用背景经测试可用的KiDispatchException和NtRaiseException两个函数进行了inline Hook。将异常发生时的ExceptionRecord,TrapFrame等信息写入。同时在内核栈中枚举了调用者的函数地址,并记录到文件中用以分析。由于KiDispatchException无法调试,所以你懂的。关键技术内核状态下,inline hook. 检测内核栈数据。
    2022-08-24 11:33:00下载
    积分:1
  • QN8027嵌入式系统
    在LINUX嵌入式体统下实现QN8027 FM模块的驱动程序,包括其初始化程序,及其部分寄存器设置的详解及举例。
    2022-10-06 06:40:03下载
    积分:1
  • BLDC 有霍尔
    基于 SUNPLUS 的 BLDC 驱动详细讲解,希望对于研究 BLDC 驱动器的同仁们有所帮助; 同时个人觉得也是非常不错的入门资料!
    2022-03-02 19:00:29下载
    积分:1
  • 696516资源总数
  • 106579会员总数
  • 0今日下载