项目简介
本项目是基于Arduino平台的实时时钟(RTC)定时器库,借助硬件RTC计数器作为定时源,运用中断驱动方式,保证定时功能的准确性不受阻塞代码干扰,且支持“无限”数量的定时器(仅受可用RAM容量限制)。
项目的主要特性和功能
- 采用硬件RTC计数器作为定时源,实现高精度定时。
- 中断驱动设计,使定时准确性不受主循环阻塞代码影响。
- 支持静态和动态定时器实例创建,最多可同时运行100个定时器。
- 具备回调函数机制,定时器到期时触发自定义函数,支持传入任意数据结构。
- 可根据需求选择快慢时钟,快时钟精度更高,慢时钟适合长时间定时。
- 低功耗设计,使用内部32KHz振荡器时,功耗约为800nA。
安装使用步骤
假设用户已下载本项目的源码文件,可按以下步骤安装和使用:
1. 安装库文件:解压源码文件,将RtcTimerIRQ
文件夹复制到Arduino项目的libraries
目录下。
2. 在Arduino IDE中使用:打开Arduino IDE,包含#include "RtcTimerIRQ.h"
头文件即可使用相关功能。
3. 初始化RTC定时器:示例代码如下:
cpp
Timer timer(1000, false, oneSecondTimer);
其中1000
表示定时周期(毫秒),false
表示定时器是单次触发模式,oneSecondTimer
是定时器到期时的回调函数。
4. 启动定时器:调用timer.startTimer();
启动定时器。
5. 轮询定时器:在主循环中调用Timer::timerLoop();
以轮询定时器是否到期。若使用真中断模式(trueIRQ),则无需调用此函数。
注意事项
- 根据项目需求选择合适的时钟源,快时钟精度高,慢时钟适合长时间定时。
- 主循环中避免长时间运行的任务,防止影响定时器准确性。
- 创建多个定时器实例时,确保RAM容量足够。
- 使用真中断模式时,注意中断的安全性和稳定性。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】