ESP32有两组硬件计时器组,每组包含两个通用硬件计时器。这些计时器都是64位的可双向计数的计数器;

下面的步骤是典型的配置和操作定时器流程:

第一:初始化;

初始化定时器通过函数:timer_init()来进行,但是这个初始化函数要求先定义一个结构体timer_config_t,这个结构体包含的内部的变量就是定时器初始化必须的一些变量;

第一个变量:divider:APB_CLK的时钟频率是80MHz,divider就是几分频的意思;

第二个变量:MODE 计数器是双向计数的,那么用counter_dir可以定义计数方向,couter_dir中的参数timer_count_dir_t是直接决定计数方向的参数;

第三个变量是:使能定时器;这个使能操作是通过count_en的参数timer_start_t来直接操作的,使能之后就可以通过timer_init()来立即开始使用定时器;

第四个变量是:使能报警,这个是通过alarm_en来实现的;

第五个参数:自动重载;

第六个参数:中断类型;

当一个定时器设置并使能之后,就开始计数了。

timer_get_counter_value() or timer_get_counter_time_sec().这两个API均可检查实时的计数器的值是多少;

timer_set_counter_value()这个API可以设定定时器的起始值;

timer_pause(). 这个API可以随时停止定时器;

timer_start().这个API可以重新开始计时;

警告:

timer_set_alarm_value() 这个API用来设置一个报警;

timer_set_alarm() 这个API被用来使能一个报警;起始timer_init()也可以使能报警;

在报警使能的情况下,定时器到了报警器设置的值的时候,会发生如下情况:

中断被触发;

在自动重载的情况下,定时器会自动重载并从初始值或者已经定义好的初始值重新开始计数;定义初始值的函数是:timer_set_counter_value().

当一个报警已经触发过中断之后,就会自动的编程失能状态,如果你还想用的话,你的重新设置报警;

中断:

timer_isr_register().通过这个API定义指定定时器的中断函数;

timer_group_intr_enable(). 这个API被用来使能中断函数,这个使能的是一个定时器组的;

timer_enable_intr()这个API被用来使能特定的定时器的中断函数;

timer_group_intr_disable()         timer_disable_intr().都可以被用来失能定时器中断;

转载于:https://www.cnblogs.com/braveheart007/p/10488688.html

ESP32 TIMER相关推荐

  1. ESP32 (Timer)-定时器学习(7)

    提示:本博客作为学习笔记,有错误的地方希望指正 文章目录 一.ESP32定时器介绍 1.1.概述 1.2.使用esp_timer api 1.3.回调函数 1.4.esp_timer在浅睡眠期间 1. ...

  2. Arduino ESP32 通过定时器(Timer)功能唤醒深度睡眠

    Arduino ESP32 通过定时器(Timer)功能唤醒深度睡眠 通过定时器功能,设置5秒,时间到就唤醒深度睡眠 实例代码 /*通过定时器功能唤醒深度睡眠(设置为5秒) */#define uS_ ...

  3. 使用ESP32 MicroPython I2C功能读取 BH1750光度传感器模块数据

    简 介: 使用ESP32读取BH1750的光度传感器的数据.但是最终不知道甚么原因,所读取的数据都是0 ? 后面通过证明,说明在原来进行I2C写的时候出现了语法错误. 关键词: BH1750,ESP3 ...

  4. 利用中断在 ESP32 MicroPython 程序中读取AM2302

    简 介: 由于使用MicroPython,如果使用指令查询方式读取AM2302的数据,无法控制到非常精确读取时间信息.利用ESP32 MicroPython中的IO中断,获取AM2302的上升沿时间, ...

  5. 龙邱 MPU9250 模块接口 | 基于ESP32模块

    简 介: 制作了MPU9250的转接接口,并利用舵机带动起旋转测量了模块测量角度功能. 关键词: MPU9250,ESP32 #mermaid-svg-dGY7dbxoXuc3EI5H {font-f ...

  6. 龙邱MPU9250传感器 | 使用ESP32 模块进行测试

    简 介: 利用ESP32 MicroPython对于来自于龙邱的MPU9250进行初步测试. 关键词: MPU9250,I2C,ESP32,软件I2C #mermaid-svg-fMBqdJ8sCAu ...

  7. 建立UDP到虚拟串口的映射软件 : USR-VCOM,并应用到WiFi调试ESP32

    简 介: 为了能够通过WiFi对于ESP32中的MicroPython程序进行开发,本文测试了使用有人无线模块USR-WiFi形成虚拟串口的方式对于ESP32进行软件开发. 关键词: ESP32,US ...

  8. 基于ESP32的智能车竞赛新版裁判系统的软件功能要求与实现

    简 介: 本文给出了第十六届智能车竞赛裁判系统最终的软件设计和功能实现.并进行了验证,是它可以满足比赛基本计时要求. 最后给出了完整的程序. 关键词: 智能车竞赛,ESP32,视觉AI §01 智能车 ...

  9. 基于ESP32智能车竞赛裁判系统第二版硬件调试-6-26

    简 介: 对于新版的比赛裁判系统进行硬件测试,验证了新版的硬件满足比赛的要求.对于感光板的不同区域灵敏度不同的问题,最后验证是由于LED的分布电容所引起的时间常数不同造成了.对于单条串联的LED修改成 ...

最新文章

  1. Win2000域控制器+Exchange2000迁移至Win2003域控制器+Exchange2003
  2. 青岛西海岸新区将建大数据交易中心
  3. CentOS 7 使用Google-Authenticator进行多因素认证
  4. Java PriorityQueue
  5. springmvc在controller和视图之间传递参数
  6. 如何处理会话等待事件与ORA-21780故障
  7. react.js 多个组件集成示例
  8. C++设计模式之Singleton模式(单例模式)
  9. Go语言学习之8 goroutine详解、定时器与单元测试
  10. Windows Server 2003安装应用程序时,提示缺失kernel.dll文件
  11. 安装Kali Linux系统
  12. 浅谈现代钢琴踏板的原理以及在三角钢琴和立式钢琴上的差异
  13. 【2021全国高校计算机能力挑战赛Python题目】17.学科竞赛 现有六门功课(语文、数学、物理、化学、政治、历史)的成绩,现在需要从中选拔优秀同学参加如下学科竞赛
  14. 网络计算机显示器接口,电脑显示器接口怎么配置才合理
  15. OpenCV中踩过的坑系列 01- Mat(int rows, int cols, int type, void* data, size_t step=AUTO_STEP)
  16. RIP --- 路由信息协议
  17. STM32开发,串口和PC机通信(串口中断、FIFO机制),安富莱+正点原子程序合并
  18. IE8 设置图片大小,没有效果
  19. 6.4.1等价关系2
  20. 轴承故障诊断分类中常用的一些数据集介绍和获取方法

热门文章

  1. Java实例---flappy-bird实例[最终版]
  2. oracle下的数据库实例、表空间、用户及其表的区分
  3. 爬虫下载百度贴吧图片
  4. Sqlserver学习研究
  5. 4章 关键的“构建”决策
  6. Grid使用 ComboBox Binding DateTime Format WPF
  7. Oracle入门教程,新手必读
  8. Error:Failed at the bcrypt@3.0.4 install script.
  9. jQuery学习(九)—常用的包裹方法
  10. Git的安装以及常用的命令总结