资料介绍
描述
概述
如果你需要计算准确的时间你需要使用定时器,但通常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山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多