Arduino计时器代码
时间: 2024-08-10 13:00:32 浏览: 109
Arduino计时器是用于精确控制时间和执行定时任务的重要功能。Arduino平台提供了多种类型的计时器,包括硬件定时器(如Timer0、Timer1和Timer2)和软件定时器(millis()和micros()函数)。这里简单介绍一种基本的使用方法:
1. **硬件计时器**:
- 使用`attachInterrupt()`函数将特定引脚的中断与定时器关联。例如,使用Timer0的溢出中断(OCR0A或OCR0B):
```c++
void setup() {
pinMode(pin, INPUT_PULLUP); // 设置输入模式
TCCR0A = 0; // 初始化Timer0A,使能定时器
TCCR0B |= (1 << CS01) | (1 << CS00); // 分频,选择16MHz时钟频率 / 8
OCR0A = 255; // 设置溢出值
attachInterrupt(digitalPinToInterrupt(pin), timerOverFlow, FALLING);
}
void timerOverFlow() {
// 满溢回调函数,在此处处理定时任务
}
```
2. **软件计时器**:
- `millis()`函数返回自系统启动以来经过的毫秒数,常用于延迟或定时任务。
- `micros()`函数返回自上一次调用以来经过的微秒数。
```c++
unsigned long previousMillis = 0;
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis > DELAY_MS) {
// 如果超过了指定延迟,执行任务
doSomething();
previousMillis = currentMillis; // 更新上一个时间点
}
}
```
阅读全文