电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>Arduino的内部定时器

Arduino的内部定时器

2023-02-09 | zip | 0.35 MB | 次下载 | 免费

资料介绍

描述

概述

如果你需要计算准确的时间你需要使用定时器,但通常Arduino的内部定时器并不是那么容易使用,所以在本教程中我试图解释如何以一种简单的方式使用它们。

使用定时器非常重要,因为在 delay() 函数期间你不能做任何事情,但是使用定时器你可以做任何事情,因为当时刻到来时,它会激活中断。

我使用TIMER0是因为它是最简单的定时器,也许以后我会解释其他定时器。

怎么运行的

首先要看的是ATmega328P的datasheet。

 
timer_0K7VXXfOCm.GIF?auto=compress%2Cformat&gifq=35&w=740&h=555&fit=max
计数器框图
 

这是计数器框图,看看这个你就能明白它是如何工作的。

预分频器从一个时钟周期接收一个脉冲,然后将其传递给控制逻辑,因此控制逻辑将 TCNTn 寄存器递增 1。

现在我们可以将 TCNTn 的值与特定值进行比较。当 TCNTn 寄存器到达这个值时,您就知道它已经过了特定的时间。

这种方法称为“Clear Timer on Compare”的 CTC 模式。TCNTn 寄存器的值与 OCRn 寄存器进行比较,当比较匹配发生时,TOVn 产生中断。

另一个重要的事情是预分频器,你可以用它来创建不同的时钟分频,事实上 16MHz 太多了,但是,多亏了预分频器,你可以创建它的一些约数。这取决于 TCCR0B 寄存器的配置。

 
tccr0b_nCgnWOYkC0.GIF?auto=compress%2Cformat&gifq=35&w=740&h=555&fit=max
 

 

 
clock_GvgOJ9Hemx.GIF?auto=compress%2Cformat&gifq=35&w=740&h=555&fit=max
 

另一个重要的事情是确定 OCRn 寄存器的值以计算特定时间,您需要一点数学知识。

 
image_IqGWJ5PQC4.png?auto=compress%2Cformat&w=740&h=555&fit=max
 

我知道所有这些看起来都太复杂了,但我相信下面的代码会解决每个问题。

在这种情况下,我们每 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 的所有位。

下面有一个例子。

 

 


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1PCB板EMC/EMI的设计技巧
  2. 0.20 MB   |  3次下载  |  免费
  3. 22024PMIC市场洞察
  4. 2.23 MB   |  2次下载  |  免费
  5. 3UC3842工作原理及开关电源电路
  6. 0.08 MB   |  1次下载  |  免费
  7. 4JFG-AS02微量程扭矩传感器数据表
  8. 0.32 MB   |  1次下载  |  免费
  9. 5JFG-3D02三维力传感器数据表
  10. 0.58 MB   |  1次下载  |  免费
  11. 6LTH7充电电路和锂电池升压5V输出电路原理图
  12. 0.04 MB   |  1次下载  |  免费
  13. 7TMR技术在电流传感器中的应用
  14. 616.47 KB  |  1次下载  |  免费
  15. 8LM5157-Q1反激式转换器评估模块
  16. 3.18MB   |  次下载  |  免费

本月

  1. 1XL4015+LM358恒压恒流电路图
  2. 0.38 MB   |  148次下载  |  1 积分
  3. 2新概念模拟电路第四册信号处理电路电子书免费下载
  4. 10.69 MB  |  65次下载  |  免费
  5. 3PCB布线和布局电路设计规则
  6. 0.40 MB   |  30次下载  |  免费
  7. 4智能门锁原理图
  8. 0.39 MB   |  13次下载  |  免费
  9. 5GB/T4706.1-2024 家用和类似用途电器的安全第1部分:通用要求
  10. 7.43 MB   |  11次下载  |  1 积分
  11. 6JESD79-5C_v1.30-2024 内存技术规范
  12. 2.71 MB   |  10次下载  |  免费
  13. 7elmo直线电机驱动调试细则
  14. 4.76 MB   |  9次下载  |  6 积分
  15. 8PC1013三合一快充数据线充电芯片介绍
  16. 1.03 MB   |  7次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935115次下载  |  10 积分
  3. 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
  4. 1.48MB  |  420061次下载  |  10 积分
  5. 3Altium DXP2002下载入口
  6. 未知  |  233084次下载  |  10 积分
  7. 4电路仿真软件multisim 10.0免费下载
  8. 340992  |  191367次下载  |  10 积分
  9. 5十天学会AVR单片机与C语言视频教程 下载
  10. 158M  |  183330次下载  |  10 积分
  11. 6labview8.5下载
  12. 未知  |  81581次下载  |  10 积分
  13. 7Keil工具MDK-Arm免费下载
  14. 0.02 MB  |  73806次下载  |  10 积分
  15. 8LabVIEW 8.6下载
  16. 未知  |  65985次下载  |  10 积分