资料介绍
描述
概述
如果你需要计算准确的时间你需要使用定时器,但通常Arduino的内部定时器并不是那么容易使用,所以在本教程中我试图解释如何以一种简单的方式使用它们。
使用定时器非常重要,因为在 delay() 函数期间你不能做任何事情,但是使用定时器你可以做任何事情,因为当时刻到来时,它会激活中断。
我使用TIMER0是因为它是最简单的定时器,也许以后我会解释其他定时器。
怎么运行的
首先要看的是ATmega328P的datasheet。
这是计数器框图,看看这个你就能明白它是如何工作的。
预分频器从一个时钟周期接收一个脉冲,然后将其传递给控制逻辑,因此控制逻辑将 TCNTn 寄存器递增 1。
现在我们可以将 TCNTn 的值与特定值进行比较。当 TCNTn 寄存器到达这个值时,您就知道它已经过了特定的时间。
这种方法称为“Clear Timer on Compare”的 CTC 模式。TCNTn 寄存器的值与 OCRn 寄存器进行比较,当比较匹配发生时,TOVn 产生中断。
另一个重要的事情是预分频器,你可以用它来创建不同的时钟分频,事实上 16MHz 太多了,但是,多亏了预分频器,你可以创建它的一些约数。这取决于 TCCR0B 寄存器的配置。
另一个重要的事情是确定 OCRn 寄存器的值以计算特定时间,您需要一点数学知识。

我知道所有这些看起来都太复杂了,但我相信下面的代码会解决每个问题。
在这种情况下,我们每 0.001 秒激活一个中断请求。
TCCR0A|=(1<; //Set the CTC mode
)<> OCR0A=0xF9; //Set the value for 1ms
TIMSK0|=(1<; //Set the interrupt request
)<> sei(); //Enable interrupt
TCCR0B|=(1<; //Set the prescale 1/64 clock
)<> TCCR0B|=(1<;
)<>ISR(TIMER0_COMPA_vect){ //This is the interrupt request
}
在最后设置预分频器很重要,因为在这条指令之后定时器开始计数,如果你需要停止它,你必须重置 TCCR0B 的所有位。
下面有一个例子。
- Arduino洗手定时器
- 基于Arduino的内部定时器 0次下载
- Arduino Nano上的自定义定时器功能
- 基于Arduino定时器控制器的继电器
- labview定时器实现实例分享 25次下载
- SysTick 定时器
- STM32——高级定时器、通用定时器、基本定时器的区别
- 基于硬件定时器的软件定时器
- STM32定时器-基本定时器
- STC51定时器与定时器中断
- 解析使用MCU内部定时器方式产生系统时钟方式资料下载
- 如何解析定时器产生的脉冲信号? 15次下载
- Arduino开发板定时器定时中断的详细资料免费下载 29次下载
- TMS320C6474 DSP 64位定时器用户指南 3次下载
- 555定时器 51次下载
- 使用Arduino的可变定时器继电器设计 492次阅读
- 如何制作一个简单的2步Arduino可编程定时器威廉希尔官方网站 1980次阅读
- 555定时器内部框图、工作原理和工作模式 5931次阅读
- 倍福PLC中定时器的使用 2893次阅读
- 如何制作一个简单的2步Arduino可编程定时器威廉希尔官方网站 4219次阅读
- 基础定时器实验 1052次阅读
- freeRTOS软件定时器的使用 1845次阅读
- 555定时器结构图、内部工作原理详解 7600次阅读
- 软件定时器简介及程序配置 3651次阅读
- 制作一个基于Arduino控制的定时器 6779次阅读
- 图文详解:定时器实用威廉希尔官方网站 的原理 3.4w次阅读
- 51单片机内部定时器和中断系统以及编写第一个简单的定时器实验程序 4w次阅读
- 低耗定时器威廉希尔官方网站 4674次阅读
- 遥控定时器 2222次阅读
- 电子定时器 2431次阅读
下载排行
本周
- 1使用单片机实现七人表决器的程序和仿真资料免费下载
- 2.96 MB | 44次下载 | 免费
- 2联想E46L DAOLL6笔记本电脑图纸
- 1.10 MB | 2次下载 | 5 积分
- 3MATLAB绘图合集
- 27.12 MB | 2次下载 | 5 积分
- 4PR735,使用UCC28060的600W交错式PFC转换器
- 540.03KB | 1次下载 | 免费
- 5UCC38C42 30W同步降压转换器参考设计
- 428.07KB | 1次下载 | 免费
- 6DV2004S1/ES1/HS1快速充电开发系统
- 2.08MB | 1次下载 | 免费
- 7模态分解合集matlab代码
- 3.03 MB | 1次下载 | 2 积分
- 8美的电磁炉维修手册大全
- 1.56 MB | 1次下载 | 5 积分
本月
- 1使用单片机实现七人表决器的程序和仿真资料免费下载
- 2.96 MB | 44次下载 | 免费
- 2UC3842/3/4/5电源管理芯片中文手册
- 1.75 MB | 15次下载 | 免费
- 3DMT0660数字万用表产品说明书
- 0.70 MB | 13次下载 | 免费
- 4TPS54202H降压转换器评估模块用户指南
- 1.02MB | 8次下载 | 免费
- 5STM32F101x8/STM32F101xB手册
- 1.69 MB | 8次下载 | 1 积分
- 6HY12P65/HY12P66数字万用表芯片规格书
- 0.69 MB | 6次下载 | 免费
- 7华瑞昇CR216芯片数字万用表规格书附原理图及校正流程方法
- 0.74 MB | 6次下载 | 3 积分
- 8华瑞昇CR215芯片数字万用表原理图
- 0.21 MB | 5次下载 | 3 积分
总榜
- 1matlab软件下载入口
- 未知 | 935119次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420061次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233084次下载 | 10 积分
- 4威廉希尔官方网站 仿真软件multisim 10.0免费下载
- 340992 | 191367次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183335次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81581次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73807次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65987次下载 | 10 积分
电子发烧友App






创作
发文章
发帖
提问
发资料
发视频
上传资料赚积分
评论