esp8266教程:定时器之原理基础
公众号
欢迎扫码关注本人微信公众号:公众号上分享更多嵌入式知识和资料,分享个人学习嵌入式的心得体会。欢迎大家一起来玩呀。
esp8266教程:定时器之原理基础
定时器的作用
在嵌入式软件开发中我们经常需要使用到定时器,定时器有有什么用?定时器在很多场景都有使用,比如我们要控制一盏led灯的闪烁,亮1秒钟,灭1秒钟,这时候就需要使用到定时器了,比如led灯亮了之后,就要启动定时器,等一秒钟后,定时器超时,定时1秒时间达到,然后熄灭led灯,然后如此反复,就形成了led闪烁的效果。所以定时器在嵌入式系统开发中是非常常见的功能。
定时器的原理
MCU内部一般都有硬件计数器,这个计数器可以根据芯片厂的设计有不同的功能,然后根据芯片的外部晶振时钟来计数,假设外部晶振的时钟为10M,可以配置为一个晶振时钟周期来计数一次,如果这个硬件计数器是16位的,那么可以计数的最大值为65535,当计数器从0计数到65535需要花的时间为 1 / 10000000 * 65535 = 0.0065535秒,6.5535毫秒。
esp8266定时器使用之不用深入理解细枝末节
上面我们说在mcu里面定时器的原理,但是在sdk,或者说在原厂的驱动里面我们无需关心定时器是如何配置出来的。我们只需要使用即可,这里可能有些所谓的“老工程师”需要告诉你,要你深入理解寄存器才能学到知识,我觉得完全没有必要,我们也不用去学习寄存器是怎么配置,我们只需要sdk给我们使用的接口是怎么来的即可,对于细枝末节的东西我们要抓大放小,为啥我啰嗦一大堆,就是怕大家真的去追那些细枝末节的东西。
esp8266定时器使用
//定时器初始化使用原型,主要是传入两个参数,一个是定时时间到之后的回调函数callback。
//另一个是定时时间到之后,调用回调函数给你传入的参数arg
esp_err_t hw_timer_init(hw_timer_callback_t callback, void *arg);
//使用例子,注册一个回调函数,不使用回调传参数,所以设置为NULL
hw_timer_init(hw_timer_callback1, NULL);
//调用hw_timer_alarm_us设置定时的时间,这里设置为100us,第二个参数true的意思是,重复定时,就是定时器到了之后还继续定时100us。
//如果第二个参数是设置false,那么就只会定时器一次。
hw_timer_alarm_us(100, true);//回调函数的功能,就是将一个IO的电平进行反转一下
void hw_timer_callback1(void *arg)
{static int state = 0;gpio_set_level(GPIO_OUTPUT_IO_0, (state ++) % 2);
}
esp8266教程:定时器之原理基础相关推荐
- 【CC2530入门教程-04】CC2530的定时/计数器原理与应用
[CC2530入门教程-06]CC2530的ADC工作原理与应用 [CC2530入门教程-05]CC2530的串行接口原理与应用 [CC2530入门教程-04]CC2530的定时/计数器原理与应用 [ ...
- linux下的vim使用教程!从零基础到入门!
linux下的vim使用教程!从零基础到入门! 文章目录 linux下的vim使用教程!从零基础到入门! vim的介绍! vim的模式介绍! vim三种模式的关系! vim的基本操作! vim的退出! ...
- 【一学就会的ROS基础入门教程 】03-1 ROS基础编程:ROS工作空间的创建、话题topic的发布与接收、以及话题消息的自定义使用
[一学就会的ROS基础入门教程 ]03-1 ROS基础编程:ROS工作空间的创建.话题topic的发布与接收.以及话题消息的自定义使用 文前白话 1.创建工作空间与功能包 关于工作空间的介绍 创建开发 ...
- 软考 程序员教程-第一章 计算机系统基础知识
软考 程序员教程-第一章 计算机系统基础知识 为了督促自己学习,告别懒惰,在此先给自己定个小目标,请大家监督哟! 目标:一个月内过一遍<程序员教程>,下一个月开始上真题. 简单看了下,我在 ...
- 达内java作业_【达内JAVA教程】达内Java基础题
原标题:[达内JAVA教程]达内Java基础题 [达内JAVA教程]达内Java基础题.的小编收集了四道JAVA基础题,下面快来跟随的小编来了解一下吧! 话说很多java程序员学过一段时间后,都应该找 ...
- esp8266灯上电闪一下_【零知ESP8266教程】快速入门2-点亮外部LED灯
[零知ESP8266教程]快速入门2-点亮外部LED灯 [复制链接] 一.工具原料 电脑,windows系统 ESP8266开发板 micro-usb线 LED灯1个 220Ω 电阻1个 面包板一个+ ...
- 新编大学计算机基础教程txt,新编大学计算机基础教程新大学计算机基础教程.doc...
新编大学计算机基础教程新大学计算机基础教程 <新编大学计算机基础教程>教学设计设计人:hbx基本信息课时:75 课程类型:新编大学计算机基础教程学分:10后续课程:组网技术.操作系统课程设 ...
- CG插画入门教程之人体动态基础与面部画法分析
CG插画入门教程之人体动态基础与面部画法分析第一章:人体动态的画法分析与技巧讲解视频地址:https://www.qingwk.com/course/detail/10 章节1:人体动态的画法分析与技 ...
- STM32(7):定时器之PWM
通用定时器之PWM 脉冲宽度调制(PWM),是英文"Pulse Width Modulation"的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的 ...
- 【Android开发教程】一、基础概念
Android操作系统 Android是一个基于Linux.使用java作为程序接口的操作系统.他提供了一些工具,比如编译器.调试器.还有他自己的仿真器(DVM - Dalvik Virtual Ma ...
最新文章
- hdu3374最小表示法+KMP
- caffe中mnist数据集的运行
- struts2处理请求流程详解
- 技术干货 | 基于 Qt Quick Plugin 快速构建桌面端跨平台组件
- boost::geometry::strategy::distance::pythagoras_point_box用法的测试程序
- Sql Server2005对t-sql的增强之Cross Apply
- 转-WSGI Tutorial
- RAC静默安装与DG搭建
- Maven 环境快速搭建
- shell应用之cobbler批量部署
- Hacker News 2018 年度报告出炉
- 威纶通宏指令是c语言吗,威纶触摸屏宏指令使用说明
- 小米6通话音量补丁_手机通话声音小?只需打开这个开关,音量更大更清晰
- 服务监控(一)之安装Prometheus
- WIN10桌面图标消失,且右键失效
- ASN.1入门(超详细)
- 市面上的手机银行的简介
- fastdfs断点续传
- 计算机管理哪个是主板驱动,请问一下这里面哪个是主板驱动?
- DDR中的ODT功能详解及波形对比