资料介绍
描述
概述
如果你需要计算准确的时间你需要使用定时器,但通常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次阅读
下载排行
本周
- 1PCB板EMC/EMI的设计技巧
- 0.20 MB | 3次下载 | 免费
- 22024PMIC市场洞察
- 2.23 MB | 2次下载 | 免费
- 3UC3842工作原理及开关电源电路
- 0.08 MB | 1次下载 | 免费
- 4JFG-AS02微量程扭矩传感器数据表
- 0.32 MB | 1次下载 | 免费
- 5JFG-3D02三维力传感器数据表
- 0.58 MB | 1次下载 | 免费
- 6LTH7充电电路和锂电池升压5V输出电路原理图
- 0.04 MB | 1次下载 | 免费
- 7TMR技术在电流传感器中的应用
- 616.47 KB | 1次下载 | 免费
- 8LM5157-Q1反激式转换器评估模块
- 3.18MB | 次下载 | 免费
本月
- 1XL4015+LM358恒压恒流电路图
- 0.38 MB | 148次下载 | 1 积分
- 2新概念模拟电路第四册信号处理电路电子书免费下载
- 10.69 MB | 65次下载 | 免费
- 3PCB布线和布局电路设计规则
- 0.40 MB | 30次下载 | 免费
- 4智能门锁原理图
- 0.39 MB | 13次下载 | 免费
- 5GB/T4706.1-2024 家用和类似用途电器的安全第1部分:通用要求
- 7.43 MB | 11次下载 | 1 积分
- 6JESD79-5C_v1.30-2024 内存技术规范
- 2.71 MB | 10次下载 | 免费
- 7elmo直线电机驱动调试细则
- 4.76 MB | 9次下载 | 6 积分
- 8PC1013三合一快充数据线充电芯片介绍
- 1.03 MB | 7次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935115次下载 | 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 | 183330次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81581次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73806次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65985次下载 | 10 积分
评论
查看更多