A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | AB | AC | AD | AE | AF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | megaTinyCore 1.1.9 millis/micros timer changes | |||||||||||||||||||||||||||||||
2 | ||||||||||||||||||||||||||||||||
3 | 4/4/2020 - Updated values based on improved testing method. | |||||||||||||||||||||||||||||||
4 | Values that have changed are marked with highlighting | micros time and % of CPU time used for millis ISR are approximate | ||||||||||||||||||||||||||||||
5 | Where marked with orange highlighting, previous micros() results were wrong | micros time is the time that micros takes to return. The value returned is as close to when micros() was called as possible | ||||||||||||||||||||||||||||||
6 | ||||||||||||||||||||||||||||||||
7 | TCA0 | |||||||||||||||||||||||||||||||
8 | Previous | New (1.1.19+) | ||||||||||||||||||||||||||||||
9 | Clock | Period | Prescale | PWM Freq | micros res | micros time | millis res | Prescale | PWM Freq | millis res | micros res | micros time | %CPU ISR | |||||||||||||||||||
10 | 20 MHz | 255 | 64 | 1225 Hz | 3 us | 6.9 us | 1 ms | 64 | 1225 Hz | 1 ms | 3 us | 6.2 us | 0.94% | |||||||||||||||||||
11 | 16 MHz | 255 | 64 | 980 Hz | 4 us | 6.7 us | 1 ms | 64 | 980 Hz | 1 ms | 4 us | 7.3 us | 0.65% | |||||||||||||||||||
12 | 10 MHz | 255 | 64 | 613 Hz | 6 us | 13.7 us | 2 ms | 64 | 613 Hz | 2 ms | 6 us | 12.3 us | 0.94% | |||||||||||||||||||
13 | 8 MHz | 255 | 64 | 490 Hz | 8 us | 14.3 us | 2 ms | 64 | 490 Hz | 2 ms | 8 us | 15.4 us | 0.65% | |||||||||||||||||||
14 | 5 MHz | 255 | 64 | 306 Hz | 12 us | 27.3 us | 3 ms | 16 | 1225 Hz | 1 ms | 3 us | 24.6 us | 2.90% | |||||||||||||||||||
15 | 4 MHz | 255 | 64 | 245 Hz | 16 us | 30.6 us | 4 ms | 16 | 980 Hz | 1 ms | 4 us | 29.1 us | 2.60% | |||||||||||||||||||
16 | 1 MHz | 255 | 64 | 61 Hz | 64 us | 136 us | 16 ms | 8 | 490 Hz | 2 ms | 8 us | 123 us | 5.20% | |||||||||||||||||||
17 | ||||||||||||||||||||||||||||||||
18 | Resolution of millis is a bit more complicated than presented here; the value presented is a safe (pessimistic) approximation. | |||||||||||||||||||||||||||||||
19 | ||||||||||||||||||||||||||||||||
20 | TCBn (for millis) | |||||||||||||||||||||||||||||||
21 | Previous | New (1.1.19+) | ||||||||||||||||||||||||||||||
22 | Clock | micros res | Period | Prescale | micros time | millis res | Period | Prescale | millis res | micros time | %CPU ISR | |||||||||||||||||||||
23 | 20 MHz | 1 us | 10000 | 2 | 9. us | 1 ms | 10000 | 2 | 1 ms | 7.6 us | 0.32% | |||||||||||||||||||||
24 | 16 MHz | 1 us | 8000 | 2 | 7.3 us | 1 ms | 8000 | 2 | 1 ms | 6.4 us | 0.41% | |||||||||||||||||||||
25 | 10 MHz | 1 us | 5000 | 2 | 18.8 us | 1 ms | 5000 | 2 | 1 ms | 16.1 us | 0.52% | |||||||||||||||||||||
26 | 8 MHz | 1 us | 4000 | 2 | 13.3 us | 1 ms | 4000 | 2 | 1 ms | 11.5 us | 0.82% | |||||||||||||||||||||
27 | 5 MHz | 1 us | 2500 | 2 | 35.6 us | 1 ms | 2500 | 2 | 1 ms | 30.3 us | 1.36% | |||||||||||||||||||||
28 | 4 MHz | 1 us | 2000 | 2 | 26.1 us | 1 ms | 2000 | 2 | 1 ms | 22.5 us | 1.65% | |||||||||||||||||||||
29 | 1 MHz | 1 us | 1000 | 1 | 103 us | 1 ms | 2000 | 1 | 2 ms | 88 us | 3.50% | |||||||||||||||||||||
30 | ||||||||||||||||||||||||||||||||
31 | Above ONLY applies when TCB0 or TCB1 is used for millis timing. When it is used for Servo or tone() the timer is configured to produce the required output with the selected system clock, and no changes were made to that. | |||||||||||||||||||||||||||||||
32 | TCB0 and TCB1 are not used to generate PWM by megaTinyCore | |||||||||||||||||||||||||||||||
33 | ||||||||||||||||||||||||||||||||
34 | TCD0 (see note) | |||||||||||||||||||||||||||||||
35 | Previous | New (1.1.19+) | ||||||||||||||||||||||||||||||
36 | Clock | Period | Prescale | PWM Freq | micros res | micros time | millis res | Period | Prescale | PWM Freq | millis res | micros res | micros time | %CPU ISR | ||||||||||||||||||
37 | 20 MHz | 512 | 32 | 1221 Hz | 2 us | 6.2 us | 1 ms | 510 | 32 | 1225 Hz | 1 ms | 2 us | 6.5 us | 0.91% | ||||||||||||||||||
38 | 16 MHz | 512 | 32 | 977 Hz | 2 us | 9.4 us | 1 ms | 510 | 32 | 980 Hz | 1 ms | 2 us | 6.5 us | 0.75% | ||||||||||||||||||
39 | 10 MHz | 512 | 32 | 1221 Hz | 2 us | 12.3 us | 1 ms | 510 | 32 | 1225 Hz | 1 ms | 2 us | 13. us | 1.27% | ||||||||||||||||||
40 | 8 MHz | 512 | 32 | 977 Hz | 2 us | 19.4 us | 1 ms | 510 | 32 | 980 Hz | 1 ms | 2 us | 13.1 us | 1.50% | ||||||||||||||||||
41 | 5 MHz | 512 | 32 | 1221 Hz | 2 us | 24.9 us | 1 ms | 510 | 32 | 1225 Hz | 1 ms | 2 us | 25.9 us | 3.18% | ||||||||||||||||||
42 | 4 MHz | 512 | 32 | 977 Hz | 2 us | 38.9 us | 1 ms | 510 | 32 | 980 Hz | 1 ms | 2 us | 26.3 us | 3.00% | ||||||||||||||||||
43 | 1 MHz | 512 | 32 | 977 Hz | 2 us | 155 us | 1 ms | 510 | 64 | 490 Hz | 2 ms | 4 us | 107 us | 6.00% | ||||||||||||||||||
44 | ||||||||||||||||||||||||||||||||
45 | TCD0 is configured to run from the on-chip oscillator before the system clock prescaler. | |||||||||||||||||||||||||||||||
46 | On 20 and 24-pin parts (where TCD0 is used for PWM), if not used for millis, it will be enabled with period of 510, prescale of 32, from 20/16MHz oscillator, providing 1225Hz PWM at 20, 10, and 5 MHz and 980 Hz PWM at other frequencies. | |||||||||||||||||||||||||||||||
47 | TCD0 is not configured by the core on 8 and 14-pin chips if not used for millis timekeeping - but it is the default choice there, as there isn't a better use for it. | |||||||||||||||||||||||||||||||
48 | As of version 1.1.19, TCD0 is used by default for millis timekeeping for all chips that have it due to improvements that allowed PWM to be used even when it is also used for millis timekeeping | |||||||||||||||||||||||||||||||
49 | ||||||||||||||||||||||||||||||||
50 | ||||||||||||||||||||||||||||||||
51 | ||||||||||||||||||||||||||||||||
52 | ||||||||||||||||||||||||||||||||
53 | ||||||||||||||||||||||||||||||||
54 | ||||||||||||||||||||||||||||||||
55 | ||||||||||||||||||||||||||||||||
56 | ||||||||||||||||||||||||||||||||
57 | ||||||||||||||||||||||||||||||||
58 | ||||||||||||||||||||||||||||||||
59 | ||||||||||||||||||||||||||||||||
60 | ||||||||||||||||||||||||||||||||
61 | ||||||||||||||||||||||||||||||||
62 | ||||||||||||||||||||||||||||||||
63 | ||||||||||||||||||||||||||||||||
64 | ||||||||||||||||||||||||||||||||
65 | ||||||||||||||||||||||||||||||||
66 | ||||||||||||||||||||||||||||||||
67 | ||||||||||||||||||||||||||||||||
68 | ||||||||||||||||||||||||||||||||
69 | ||||||||||||||||||||||||||||||||
70 | ||||||||||||||||||||||||||||||||
71 | ||||||||||||||||||||||||||||||||
72 | ||||||||||||||||||||||||||||||||
73 | ||||||||||||||||||||||||||||||||
74 | ||||||||||||||||||||||||||||||||
75 | ||||||||||||||||||||||||||||||||
76 | ||||||||||||||||||||||||||||||||
77 | ||||||||||||||||||||||||||||||||
78 | ||||||||||||||||||||||||||||||||
79 | ||||||||||||||||||||||||||||||||
80 | ||||||||||||||||||||||||||||||||
81 | ||||||||||||||||||||||||||||||||
82 | ||||||||||||||||||||||||||||||||
83 | ||||||||||||||||||||||||||||||||
84 | ||||||||||||||||||||||||||||||||
85 | ||||||||||||||||||||||||||||||||
86 | ||||||||||||||||||||||||||||||||
87 | ||||||||||||||||||||||||||||||||
88 | ||||||||||||||||||||||||||||||||
89 | ||||||||||||||||||||||||||||||||
90 | ||||||||||||||||||||||||||||||||
91 | ||||||||||||||||||||||||||||||||
92 | ||||||||||||||||||||||||||||||||
93 | ||||||||||||||||||||||||||||||||
94 | ||||||||||||||||||||||||||||||||
95 | ||||||||||||||||||||||||||||||||
96 | ||||||||||||||||||||||||||||||||
97 | ||||||||||||||||||||||||||||||||
98 | ||||||||||||||||||||||||||||||||
99 | ||||||||||||||||||||||||||||||||
100 |