Arduino Mega2560 Timers定时器
warning:
这篇文章距离上次修改已过1480天,其中的内容可能已经有所变动。
Arduino Mega 引脚及Timers对应
| Pin | Timer |
|---|---|
| 46 | OC5B |
| 45 | OC5B |
| 44 | OC5B |
| 13 | OC0B //Caution: this one directly effects major timing { i.e delay and millis} |
| 12 | OC1B |
| 11 | OC1A |
| 10 | OC2A |
| 9 | OC2B |
| 8 | OC4C |
| 7 | OC4B |
| 6 | OC4A |
| 5 | OC3A |
| 4 | OC0B //Caution: this one directly effects major timing { i.e delay and millis} |
| 3 | OC3C |
| 2 | OC3B |
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)
| Value | Divisor | Frequency |
|---|---|---|
| 0x01 | 1 | 62.5035 KHz |
| 0x02 | 8 | 7.8125 KHz |
| 0x03 | 64 | 976.5 Hz // default |
| 0x04 | 256 | 244.1 Hz |
| 0x05 | 1024 | 61.0 Hz |
代码: TCCR0B = (TCCR0B & 0xF8) | value ;
TIMER 1 (Pin 11, 12)
| Value | Divisor | Frequency |
|---|---|---|
| 0x01 | 1 | 31.374 KHz |
| 0x02 | 8 | 3.921 KHz |
| 0x03 | 64 | 490.1 Hz // default |
| 0x04 | 256 | 122.5 Hz |
| 0x05 | 1024 | 30.63 Hz |
代码: TCCR1B = (TCCR1B & 0xF8) | value ;
TIMER 2 (Pin 9, 10)
| Value | Divisor | Frequency |
|---|---|---|
| 0x01 | 1 | 31.374 KHz |
| 0x02 | 8 | 3.921 KHz |
| 0x03 | 32 | 980.3 Hz |
| 0x04 | 64 | 490.1 Hz // default |
| 0x05 | 128 | 245 hz |
| 0x06 | 256 | 122.5 hz |
| 0x07 | 1024 | 30.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!
| Value | Divisor | Frequency |
|---|---|---|
| 0x01 | 1 | 31.374 KHz |
| 0x02 | 8 | 3.921 Khz |
| 0x03 | 64 | 490.1 Hz // default |
| 0x04 | 256 | 122.5 Hz |
| 0x05 | 1024 | 30.63 Hz |
代码: TCCR3B = (TCCR3B & 0xF8) value ;
TIMER 4 (Pin 6, 7, 8)
| Value | Divisor | Frequency |
|---|---|---|
| 0x01 | 1 | 31.374 KHz |
| 0x02 | 8 | 3.921 Khz |
| 0x03 | 64 | 490.1 Hz // default |
| 0x04 | 256 | 122.5 Hz |
| 0x05 | 1024 | 30.63 Hz |
Code: TCCR4B = (TCCR4B & 0xF8) | value ;
TIMER 5 (Pin 44, 45, 46)
| Value | Divisor | Frequency |
|---|---|---|
| 0x01 | 1 | 31.374 KHz |
| 0x02 | 8 | 3.921 Khz |
| 0x03 | 64 | 490.1 Hz // default |
| 0x04 | 256 | 122.5 Hz |
| 0x05 | 1024 | 30.63 Hz |
Code: TCCR5B = (TCCR5B & 0xF8) | value ;
改变:
void setup() {
...
int fff = 6;
TCCR2B = (TCCR2B & 0xF8) | fff;
int fff1 = 4;
TCCR4B = (TCCR4B & 0xF8) | fff1 ;
....
}