⏱️ Arduino 定时器 500ms 计算(timer1):OCR=7812,预分频64µs

工具计算永久页 · 服务端已算好结果,可收藏、可分享、可被搜索引擎收录
📐 本次计算结果
目标 500ms(timer1,65535 位): 每 tick 64µs(16MHz) 需要 7813 tick,OCR = 7812
👁 6 次查看 · 2026-08-14 00:50 生成
📋 生成的代码(可复制)
// Arduino timer1 定时 500ms
TCCR1A = 0;
TCCR1B = (1 << WGM12);   // CTC 模式
OCR1A = 7812;
TIMSK1 |= (1 << OCIE1A); // 使能中断
TCCR1B |= (1 << CS12);      // 预分频 64µs

ISR(TIMER1_COMPA_vect){
  // TODO: 周期任务
}
💡 原理解释
Arduino(AVR,16MHz)定时器的定时时间 = 需要的 tick 数 × 每 tick 时长。每 tick 时长由预分频决定(如 64 分频 = 4µs)。把目标时间换算成 tick 数后写入比较寄存器(OCR),并在 CTC 模式使能比较中断即可。timer1 是16 位(上限 65535),长定时间需要更大的预分频。
⭐ 评分 /5 💬 0 条评价 💰 0 次打赏
✍️ 这个计算结果有用吗?
点击星评价
实名注册用户可彰显昵称,游客用随机名
💰 如果这个工具帮到了你
扫码打赏支持持续更新,让更多工程师用上免费工具
🧰 更多工具
🔗 波特率计算器 📊 ADC 转换 ⏰ 时钟分频计算 📌 引脚功能查询 🎛️ PWM 频率/占空比
🔗 相关计算
STM32 定时器 805.5 µs 计算:主频86MHz PSC=68 ARR=1003 Arduino 定时器 1ms 计算(timer0):OCR=15,预分频64µs STM32 定时器 4.000 ms 计算:主频36MHz PSC=35 ARR=3999 STM32 定时器 10.0 µs 计算:主频72MHz PSC=0 ARR=719 STM32 定时器 1.000 ms 计算:主频168MHz PSC=167 ARR=999 STM32 定时器 1.000 ms 计算:主频8MHz PSC=79 ARR=99 STM32 定时器 2.000 ms 计算:主频72MHz PSC=71 ARR=1999 STM32 定时器 500.0 µs 计算:主频72MHz PSC=71 ARR=499
▶ 回到计算器继续算 →