user33116: I needed to use TC1 for input capture, but also analogWrite() and an approximate 1 ms interrupt to poll the user interface (encoder, button).
The Arduino Nano's ATmega328p (datasheet, beware: a lot of bit symbol typos) has three timers:

TC0
TC1
TC2

It is not easy to find information on the "Arduino core" structure and it's use of peripherals. The Arduino Reference does not seem to refer to any information. Nor does Arduino Hacking.
Some info can be found on
https://arduino-info.wikispaces.com/Timers-Arduino
but I am not sure it's up to date. For instance, I find disabling TC2 also disables the analogWrite() PWM. 
Trying to use TC0 results in an error, as TIMER0_OVF_vect is already being used ("multiple definition of `__vector_16'").
How can I use the timers (and their interrupts) that are already used for the core?

user33116: "Reimplementing" the interrupt handlers to free Timer/Counter resources would require changes to the Arduino core firmware.
But there may be a workaround:
The source code shows how init() and loop() are used:
https://github.com/arduino/Arduino/blob/master/hardware/arduino/avr/cores/arduino/main.cpp
and the basic timer initialization is here:
https://github.com/arduino/Arduino/blob/master/hardware/arduino/avr/cores/arduino/wiring.c#L45
and init() is there as well, which also configures all the other timers for phase-correct PWM...
analogWrite() is in https://github.com/arduino/Arduino/blob/master/hardware/arduino/avr/cores/arduino/wiring_analog.c
I thought that at just 490/980 Hz it might use software-PWM, but in fact it selects the corresponding timer output compare pin (that also means the CPU can be powered down while the PWM still is being generated).
It does that via a runtime lookup in the board header's digital_pin_to_timer_PGM, e.g. https://github.com/arduino/Arduino/blob/master/hardware/arduino/avr/variants/standard/pins_arduino.h
which seems to be a (conditional) list of all pins.
So there is a limited, indirect choice on which timer is being used for PWM:
PD5 and PD6 are served by TC0, so using one of these as analogWrite() output pin frees TC2 for my purposes (~1 kHz polling).
Works for me!

user7508: Here is a summary of all this. On an ATmega328P (Arduino Uno, Nano,
etc.), the Arduino core library uses the timers as follows:

Timer 0


timing and delay functions, using the TIMER0_OVF interrupt
“fast” PWM at 980 Hz on pins 5 and 6 (PD5 and PD6)

Timer 1


“phase-correct” PWM at 490 Hz on pins 9 and 10 (PB1 and PB2)

Timer 2


“phase-correct” PWM at 490 Hz on pins 3 and 11 (PD3 and PB3)


All three timers have their prescalers set to 64. TIMER0_OVF is the
only timer interrupt enabled by default.
Note that libraries can use the timers for their own purposes. Servo
for instance uses Timer 1 for doing interrupt-based PWM.

33116: <p>I needed to use TC1 for input capture, but also analogWrite() and an approximate 1 ms interrupt to poll the user interface (encoder, button).</p>

<p>The Arduino Nano's <a href="http://www.microchip.com/wwwproducts/en/ATmega328P" rel="nofollow noreferrer">ATmega328p</a> (<a href="http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Datasheet.pdf" rel="nofollow noreferrer">datasheet</a>, beware: a lot of bit symbol typos) has three timers:</p>

<ol>
<li>TC0</li>
<li>TC1</li>
<li>TC2</li>
</ol>

<p>It is not easy to find information on the "Arduino core" structure and it's use of peripherals. The <a href="https://www.arduino.cc/en/Reference/HomePage" rel="nofollow noreferrer">Arduino Reference</a> does not seem to refer to any information. Nor does <a href="https://www.arduino.cc/en/Hacking/HomePage" rel="nofollow noreferrer">Arduino Hacking</a>.</p>

<p>Some info can be found on</p>

<p><a href="https://arduino-info.wikispaces.com/Timers-Arduino" rel="nofollow noreferrer">https://arduino-info.wikispaces.com/Timers-Arduino</a></p>

<p>but I am not sure it's up to date. For instance, I find disabling TC2 also disables the <code>analogWrite()</code> PWM. 
Trying to use TC0 results in an error, as <code>TIMER0_OVF_vect</code> is already being used ("multiple definition of `__vector_16'").</p>

<p>How can I use the timers (and their interrupts) that are already used for the core?</p>
 33116: <p>"Reimplementing" the interrupt handlers to free Timer/Counter resources would require changes to the Arduino core firmware.
But there may be a workaround:</p>

<p>The source code shows how <code>init()</code> and <code>loop()</code> are used:</p>

<p><a href="https://github.com/arduino/Arduino/blob/master/hardware/arduino/avr/cores/arduino/main.cpp" rel="nofollow noreferrer">https://github.com/arduino/Arduino/blob/master/hardware/arduino/avr/cores/arduino/main.cpp</a></p>

<p>and the basic timer initialization is here:</p>

<p><a href="https://github.com/arduino/Arduino/blob/master/hardware/arduino/avr/cores/arduino/wiring.c#L45" rel="nofollow noreferrer">https://github.com/arduino/Arduino/blob/master/hardware/arduino/avr/cores/arduino/wiring.c#L45</a></p>

<p>and <code>init()</code> <a href="https://github.com/arduino/Arduino/blob/master/hardware/arduino/avr/cores/arduino/wiring.c#L241" rel="nofollow noreferrer">is there as well</a>, which also configures all the other timers for <em>phase-correct PWM</em>...</p>

<p><code>analogWrite()</code> is in <a href="https://github.com/arduino/Arduino/blob/master/hardware/arduino/avr/cores/arduino/wiring_analog.c" rel="nofollow noreferrer">https://github.com/arduino/Arduino/blob/master/hardware/arduino/avr/cores/arduino/wiring_analog.c</a></p>

<p>I thought that at just 490/980 Hz it might use software-PWM, but in fact it selects the corresponding timer <em>output compare</em> pin (that also means the CPU can be powered down while the PWM still is being generated).</p>

<p>It does that via a runtime lookup in the board header's <code>digital_pin_to_timer_PGM</code>, e.g. <a href="https://github.com/arduino/Arduino/blob/master/hardware/arduino/avr/variants/standard/pins_arduino.h" rel="nofollow noreferrer">https://github.com/arduino/Arduino/blob/master/hardware/arduino/avr/variants/standard/pins_arduino.h</a></p>

<p>which seems to be a (conditional) list of all pins.</p>

<p>So there is a limited, indirect choice on which timer is being used for PWM:<br>
PD5 and PD6 are served by TC0, so using one of these as <code>analogWrite()</code> output pin frees TC2 for my purposes (~1 kHz polling).</p>

<p>Works for me!</p>
 7508: <p>Here is a summary of all this. On an ATmega328P (Arduino Uno, Nano,
etc.), the Arduino core library uses the timers as follows:</p>

<ul>
<li>Timer 0

<ul>
<li>timing and delay functions, using the <code>TIMER0_OVF</code> interrupt</li>
<li>“fast” PWM at 980 Hz on pins 5 and 6 (PD5 and PD6)</li>
</ul></li>
<li>Timer 1

<ul>
<li>“phase-correct” PWM at 490 Hz on pins 9 and 10 (PB1 and PB2)</li>
</ul></li>
<li>Timer 2

<ul>
<li>“phase-correct” PWM at 490 Hz on pins 3 and 11 (PD3 and PB3)</li>
</ul></li>
</ul>

<p>All three timers have their prescalers set to 64. <code>TIMER0_OVF</code> is the
only timer interrupt enabled by default.</p>

<p>Note that libraries can use the timers for their own purposes. <code>Servo</code>
for instance uses Timer&nbsp;1 for doing interrupt-based PWM.</p>
