Arduino Mega2560 Timers定时器

warning: 这篇文章距离上次修改已过1291天,其中的内容可能已经有所变动。

Arduino Mega 引脚及Timers对应

PinTimer
46OC5B
45OC5B
44OC5B
13OC0B //Caution: this one directly effects major timing { i.e delay and millis}
12OC1B
11OC1A
10OC2A
9OC2B
8OC4C
7OC4B
6OC4A
5OC3A
4OC0B //Caution: this one directly effects major timing { i.e delay and millis}
3OC3C
2OC3B

Timer与PWM的对应关系

  • timer 0 —– pin 4, 13
  • timer 1 —– pin 11, 12, 13
  • timer 2 —– pin 9, 10
  • timer 3 —– pin 2, 3, 5
  • timer 4 —– pin 6, 7, 8
  • timer 5 —– pin 44, 45, 46

TIMER 0 (Pin 4, 13)

ValueDivisorFrequency
0x01162.5035 KHz
0x0287.8125 KHz
0x0364976.5 Hz // default
0x04256244.1 Hz
0x05102461.0 Hz

代码: TCCR0B = (TCCR0B & 0xF8) | value ;

TIMER 1 (Pin 11, 12)

ValueDivisorFrequency
0x01131.374 KHz
0x0283.921 KHz
0x0364490.1 Hz // default
0x04256122.5 Hz
0x05102430.63 Hz

代码: TCCR1B = (TCCR1B & 0xF8) | value ;

TIMER 2 (Pin 9, 10)

ValueDivisorFrequency
0x01131.374 KHz
0x0283.921 KHz
0x0332980.3 Hz
0x0464490.1 Hz // default
0x05128245 hz
0x06256122.5 hz
0x07102430.63 hz

代码: TCCR2B = (TCCR2B & 0xF8) value ;

TIMER 3 ( Pin 2, 3, 5)

Timers 3, 4, 5 Oddly do not use the divisors the data sheet says: Below are actual measured values!

ValueDivisorFrequency
0x01131.374 KHz
0x0283.921 Khz
0x0364490.1 Hz // default
0x04256122.5 Hz
0x05102430.63 Hz

代码: TCCR3B = (TCCR3B & 0xF8) value ;

TIMER 4 (Pin 6, 7, 8)

ValueDivisorFrequency
0x01131.374 KHz
0x0283.921 Khz
0x0364490.1 Hz // default
0x04256122.5 Hz
0x05102430.63 Hz

Code: TCCR4B = (TCCR4B & 0xF8) | value ;

TIMER 5 (Pin 44, 45, 46)

ValueDivisorFrequency
0x01131.374 KHz
0x0283.921 Khz
0x0364490.1 Hz // default
0x04256122.5 Hz
0x05102430.63 Hz

Code: TCCR5B = (TCCR5B & 0xF8) | value ;

改变:

void setup() {
  ...
  int fff = 6;  
  TCCR2B = (TCCR2B & 0xF8) | fff;
  int fff1 = 4;  
  TCCR4B = (TCCR4B & 0xF8) | fff1 ;
  ....
}
最后修改于:2021年10月17日 00:27

添加新评论