当前位置: 首页 > article >正文

【RTT驱动框架分析】-硬件定时器应用笔记和源码分析

hwtimer硬件定时器

官方应用开发

定时器简介

硬件定时器一般有 2 种工作模式,定时器模式和计数器模式。不管是工作在哪一种模式,实质都是通过内部计数器模块对脉冲信号进行计数。下面是定时器的一些重要概念。

**计数器模式:**对外部输入引脚的外部脉冲信号计数。

**定时器模式:**对内部脉冲信号计数。定时器常用作定时时钟,以实现定时检测,定时响应、定时控制。

**计数器:**计数器可以递增计数或者递减计数。16位计数器的最大计数值为65535,32位的最大值为4294967295。

**计数频率:**定时器模式时,计数器单位时间内的计数次数,由于系统时钟频率是定值,所以可以根据计数器的计数值计算出定时时间,定时时间 = 计数值 / 计数频率。例如计数频率为 1MHz,计数器计数一次的时间则为 1 / 1000000, 也就是每经过 1 微秒计数器加一(或减一),此时 16 位计数器的最大定时能力为 65535 微秒,即 65.535 毫秒。

本定时器设备框架内部会自动处理硬件定时器超时的问题,例如16位定时器在1MHz的频率下最大只能维持65.535ms。但是在本定时器框架下,用户可以将定时器的溢出时间设置为例如500ms,框架内部会自动处理硬件溢出问题。当时间达到500ms后,框架会调用用户预先设置好的回调函数。

访问硬件定时器设备

应用程序通过 RT-Thread 提供的 I/O 设备管理接口来访问硬件定时器设备,相关接口如下所示:


http://www.kler.cn/a/104930.html

相关文章:

  • GDPU 数据结构 天码行空6
  • 基于C/C++的UG二次开发流程
  • VMware CentOS 虚拟机扩容
  • Android Studio模拟器/虚拟设备连接互联网的方法
  • C++中低级内存操作
  • 如何处理前端打包体积过大的问题?
  • 昇腾CANN 7.0 黑科技:大模型训练性能优化之道
  • 零基础Linux_23(多线程)线程安全+线程互斥(加锁)+死锁
  • jsp初学
  • 手部关键点检测5:C++实现手部关键点检测(手部姿势估计)含源码 可实时检测
  • 记一次vue3实现TRSP大华相机拉流的经历
  • 百度Comate SaaS版本正式发布,助力开发者加速研发过程
  • vim程序编辑器
  • javascript IP地址正则表达式
  • 解决vi编辑器方向按键和删除按键无法使用问题
  • Android Studio中配置aliyun maven库
  • 【Docker】Python Flask + Redis 练习
  • 【Android Studio】工程中文件Annotate with Git Blame 不能点击
  • Golang链路追踪:实现高效可靠的分布式系统监控
  • KVM实验之动态迁移