Timer

The timer system is used to measure time and to produce signals of specific frequency periods. Timers can be used in multiple ways: The CPU can control the timing of output signals through the output compare mechanism and monitor incoming signals through the input capture mechanism, and the CPU can use the timer system as an internal reference (e.g., delay loops or multiplexing between various software tasks). The timer can be used for virtually any timing function, including waveform generation, simple D/A conversion, and so on.

IC
The input capture (IC) mechanism of a timer can be used to detect the time of an event or measure the period of an input signal. When the selected edge occurs, the current value of the free-running counter is captured by the input capture register, which can later be read by the CPU. This is the timer mechanism typically used in the timing of external events.

OC
The output compare (OC) mechanism of a timer can be used to schedule an output change to occur at a specific time in a timer cycle. The planned output change occurs when the free-running counter matches the value in the output compare register. This is the timer mechanism typically used for control of outgoing timing references.

PWM
The pulse width modulate (PWM) mechanism is useful for generating signals to control motors, gauge drivers, switching power supplies, and low cost D/A converters. A typical D/A application would configure the PWM module to a generate a waveform with a fixed period and to set the duty cycle (the relative time the signal is high vs low) to specify the desired analog value.

RTI
The real-time interrupt (RTI) mechanism is useful for generating a periodic interrupt automatically every x (programmable) amount of time. This can be useful for executing diagnostics, maintenance routines, and polling i/o or events.

RTC
The real-time clock (RTC) mechanism is similar to the RTI although with some software it can easily be used to keep time in hours, minutes, days, etc.