Input capture

Input capture is a method of dealing with input signals in an embedded system.
Embedded systems using input capture will record a timestamp in memory when an input signal is received. It will also set a flag indicating that an input has been captured. This allows the system to continue executing without interruption while an input is being received while still having the capability to trigger events based on the exact time when the input was received.
The corresponding capability to trigger an output at a specified time, based on a timestamp in memory, is called output compare.
There are many programmable interrupt controllers that provide dedicated input capture pins and a programmable counter along with it. These pins generate interrupts to the controller, which then executes an interrupt service routine. The interrupts can be programmed to occur at the rising or falling edge of the input signal, depending on requirements.