4. Timer1
4.1. TCNT1 (Timer/Counter Register)

TCNT1 is functionally the same as TCNT0, serving as the core counter for its respective module, with several significant additions and architectural differences. TCNT1 is a 16-bit register divided into two 8-bit register, TCNT1H (high byte) and TCNT1L (low byte). This allows it to count from 0 to 65,535, providing much higher precision and longer timing.
TCNT1 includes a specialized Input Capture feature not found in Timer0. When a signal event occurs on the ICP1 pin, the current value of TCNT1 is instantly copied into the ICR1 register. This is used to measure external pulse widths with high accuracy.
4.2. TCCR1 (Timer/Counter 1 Control Register)
4.2.1. TCCR1A (Control Register A)

- Bit 7:6 - COM10A1:0 (Compare Match Output Mode A): Controls the behavior of the OC1A pin when TCNT1 matches OCR1A.
- Bit 5:4 - COM1B1:0 (Compare Match Output Mode B): Controls the behavior of the OC1B pin when TCNT1 matches OCR1B.
- Bit 1:0 - WGM11:0 (Wave Generation Mode): Combined with WGM13:12 in TCCR1B to select one of 16 available modes.
4.2.1.1. COM1x1:0 Description
This table shows the COM1x1:0 functionality when the timer is in a non-PWM mode (normal or CTC):
| COM1x1 | COM1x0 | Description |
|---|---|---|
| 0 | 0 | Normal port operation, OC1x disconnected. |
| 0 | 1 | Toggle OC1x on Compare Match. |
| 1 | 0 | Clear OC1x on Compare Match (Set output to low). |
| 1 | 1 | Set OC1x on Compare Match (Set output to high). |
4.2.1.2. WGM13:0 Description
This table shows how the WGM13:0 bits affect the counting sequence of the counter, the source for maximum (TOP) counter value, and what type of waveform generation to be used:
| Mode | WGM13 | WGM12 | WGM11 | WGM10 | Timer/Counter Mode of Operation | TOP | Update of OCR1x at | TOV1 Flag Set on |
|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | Normal | 0xFFFF | Immediate | MAX |
| 1 | 0 | 0 | 0 | 1 | PWM, phase correct, 8-bit | 0x00FF | TOP | BOTTOM |
| 2 | 0 | 0 | 1 | 0 | PWM, phase correct, 9-bit | 0x01FF | TOP | BOTTOM |
| 3 | 0 | 0 | 1 | 1 | PWM, phase correct, 10-bit | 0x03FF | TOP | BOTTOM |
| 4 | 0 | 1 | 0 | 0 | CTC | OCR1A | Immediate | MAX |
| 5 | 0 | 1 | 0 | 1 | Fast PWM, 8-bit | 0x00FF | BOTTOM | TOP |
| 6 | 0 | 1 | 1 | 0 | Fast PWM, 9-bit | 0x01FF | BOTTOM | TOP |
| 7 | 0 | 1 | 1 | 1 | Fast PWM, 10-bit | 0x03FF | BOTTOM | TOP |
| 8 | 1 | 0 | 0 | 0 | PWM, phase and frequency correct | ICR1 | BOTTOM | BOTTOM |
| 9 | 1 | 0 | 0 | 1 | PWM, phase and frequency correct | OCR1A | BOTTOM | BOTTOM |
| 10 | 1 | 0 | 1 | 0 | PWM, phase correct | ICR1 | TOP | BOTTOM |
| 11 | 1 | 0 | 1 | 1 | PWM, phase correct | OCR1A | TOP | BOTTOM |
| 12 | 1 | 1 | 0 | 0 | CTC | ICR1 | Immediate | MAX |
| 13 | 1 | 1 | 0 | 1 | (Reserved) | — | — | — |
| 14 | 1 | 1 | 1 | 0 | Fast PWM | ICR1 | BOTTOM | TOP |
| 15 | 1 | 1 | 1 | 1 | Fast PWM | OCR1A | BOTTOM | TOP |
4.2.2. TCCR1B (Control Register B)

- Bit 7 - ICNC1 (Input Capture Noise Canceler): When set to
1, a digital filter is activated on the ICP1 pin. It requires four matching cycles to trigger, reducing noise spikes. - Bit 6 - ICES1 (Input Capture Edge Select): Selects which edge triggers a capture on the ICP1 pin.
1= Rising edge;0= Falling edge. - Bit 3 - WGM13:2 (Waveform Generation Mode): Works with WGM11:0 to set the mode.
- Bit 2:0 - CS12:0 (Clock Select): Sets the prescaler or selects an external clock source.
4.2.2.1. CS02:0 Prescaler Settings
| CS12 | CS11 | CS10 | Description |
|---|---|---|---|
| 0 | 0 | 0 | No clock source (Timer/Counter stopped) |
| 0 | 0 | 1 | clk / 1 (No prescaling) |
| 0 | 1 | 0 | clk / 8 (From prescaler) |
| 0 | 1 | 1 | clk / 64 (From prescaler) |
| 1 | 0 | 0 | clk / 256 (From prescaler) |
| 1 | 0 | 1 | clk / 1024 (From prescaler) |
| 1 | 1 | 0 | External clock source on T0 pin. Clock on falling edge. |
| 1 | 1 | 1 | External clock source on T0 pin. Clock on rising edge. |
4.2.3. TCCR1C (Control Register C)

- Bit 7 - FOC1A (Force Output Compare A): Only active in non-PWM modes. Writing
1forces an immediate match on OC1A. - Bit 6 - FOC1B (Force Output Compare B): Only active in non-PWM modes. Writing
1forces an immediate match on OC1B.
4.3. TIFR1 (Timer/Counter 1 Interrupt Flag Register)

- Bit 5 - ICF1 (Input Capture Flag): Set to
1when a capture event occurs on the ICP1 pin. - Bit 2 - OCF1B (Output Compare Flag B): Set to
1when TCNT1 matches the value in OCR1B. - Bit 1 - OCF1A (Force Output Compare A): Set to
1when TCNT1 matches the value in OCR1A. - Bit 0 - TOV1 (Timer Overflow Flag): Set to
1when the timer overflows (reaches its MAX value and restarts from 0).
No comments to display
No comments to display