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

软件定时器

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

  • 有感BLDC无刷电机控制程序
    资源描述带霍尔传感器,按键实现正反转,并通过LED指示正反转,通过可调电阻实现内部调速
    2022-07-19 03:14:58下载
    积分:1
  • ntfs fssystem
    windows ntfs文件系统源码。 win2k Copyright (c) 1991  Microsoft Corporation Module Name:     NtfsInit.c Abstract:     This module implements the DRIVER_INITIALIZATION routine for Ntfs
    2022-04-16 14:25:12下载
    积分:1
  • stm8l stvd 固件库
    标准stm8l固件库  stvd 编译器 comic C代码 /**   ******************************************************************************   * @file stm8l10x.h   * @brief This file contains all HW registers definitions and memory mapping.   * @author STMicroelectronics - MCD Application Team   * @version V1.0.1   * @date 06/19/2009   ******************************************************************************   *   * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING
    2022-07-12 19:27:43下载
    积分:1
  • linux 物理内存直接访问
    linux 用户空间物理内存直接访问,是用户可以在用户空间直接访问物理地址,使你尝试DOS时代的物理内存直接访问
    2022-03-13 01:17:21下载
    积分:1
  • java串口问题
    如果是java串口问题,有识别不了,或是驱动安装不正确,可以通过导入对应文件到相关文件夹来解决问题,详细见本文。
    2022-01-24 18:50:59下载
    积分:1
  • CCS rto 代码
    CCS 源代码在 PIc 单片机为 CCS RTOS 工作工作。您可以通过在 mplab 中运行此 imn 仿真模式验证
    2022-03-07 06:51:03下载
    积分:1
  • 基于C8051的电控阀控制程序
    应用背景水处理是指通过一系列水处理设备及滤料将原水中有害及影响使用的成分进行净化处理,以达到规定的水质标准。水处理过程主要是通过专用的多路阀来实现的 。本公司生产的多路阀分为两种类型,一种是过滤阀,一种是软化阀。我们设计的单阀、双阀和三阀的三种电动控制系统,都需要适用于两种不同的阀门,本程序实现的是对上述阀门的电控控制功能。关键技术水处理多路阀控制系统软件由初始化模块,模拟量采集模块,时钟芯片模块,键盘模块,液晶显示模块,串口通信模块,E2PROM模块,电机启动模块,电机停止模块,比例调节模块等多个软件控制模块组成。以实现对单阀、多阀系统的控制。
    2022-08-05 17:11:17下载
    积分:1
  • 开源云台控制程序
    应用背景开源云台控制程序,两轴程序,德国版,调节得好,有很好的效果,稳定图像效果。。。。。。关键技术两轴程序,控制,有刷云台,开源云台。。。
    2023-05-04 15:30:03下载
    积分:1
  • UC1698c源码
    UC1698c驱动源码,可在用来在UC1698c控制器IC LCD上。可用来显示汉字,全角英文字。51单片机
    2022-06-21 16:16:35下载
    积分:1
  • android游戏开发之摇杆控制源码
    android游戏开发之摇杆控制源码
    2022-05-25 23:25:01下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载