Bird
Raised Fist0
Embedded Cprogramming~5 mins

Input capture mode in Embedded C - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is Input Capture Mode in embedded C?
Input Capture Mode is a feature in microcontrollers that records the exact time when an input signal changes, using a timer. It helps measure signal timing precisely.
Click to reveal answer
beginner
Which hardware component is mainly used in Input Capture Mode?
A timer/counter module is used to capture the time of an input event, like a rising or falling edge on a pin.
Click to reveal answer
intermediate
How does Input Capture Mode help in measuring pulse width?
It records the timer value at the start and end of a pulse, allowing calculation of the pulse duration by subtracting these values.
Click to reveal answer
intermediate
What is the role of an interrupt in Input Capture Mode?
An interrupt triggers when the input event occurs, so the program can quickly read the captured timer value without missing the event.
Click to reveal answer
advanced
Give a simple example of configuring Input Capture Mode in embedded C.
Example: Configure timer, set input capture pin, enable capture on rising edge, enable interrupt, and read timer value in ISR.
Click to reveal answer
What does Input Capture Mode primarily measure?
AThe exact time an input signal changes
BThe voltage level of an input pin
CThe frequency of the output signal
DThe temperature of the microcontroller
Which event typically triggers the input capture in embedded systems?
AA change in input pin signal (rising or falling edge)
BA timer overflow
CA reset button press
DA power failure
Why are interrupts used with Input Capture Mode?
ATo reset the microcontroller
BTo slow down the timer
CTo turn off the input pin
DTo immediately handle the captured timer value
What hardware module is essential for Input Capture Mode?
AAnalog-to-Digital Converter
BTimer/Counter module
CUART module
DPWM generator
How can Input Capture Mode help measure pulse width?
ABy counting the number of pulses
BBy measuring voltage levels
CBy capturing timer values at pulse start and end
DBy generating PWM signals
Explain how Input Capture Mode works in a microcontroller and why it is useful.
Think about how a stopwatch records exact times when a button is pressed.
You got /3 concepts.
    Describe the steps to configure Input Capture Mode in embedded C.
    Consider what hardware and software settings are needed to catch and use the input event time.
    You got /5 concepts.

      Practice

      (1/5)
      1. What is the main purpose of Input Capture Mode in embedded C timer modules?
      easy
      A. To record the timer value when a specific input event occurs
      B. To generate PWM signals automatically
      C. To reset the timer periodically
      D. To output a fixed frequency signal

      Solution

      1. Step 1: Understand Input Capture Mode function

        Input Capture Mode records the timer count when an input event (like a signal edge) happens.
      2. Step 2: Compare options with this function

        Only To record the timer value when a specific input event occurs describes recording the timer value on an input event, which matches the purpose.
      3. Final Answer:

        To record the timer value when a specific input event occurs -> Option A
      4. Quick Check:

        Input Capture = Record timer on event [OK]
      Hint: Input Capture records timer on input events [OK]
      Common Mistakes:
      • Confusing Input Capture with PWM generation
      • Thinking it resets the timer automatically
      • Assuming it outputs signals instead of capturing
      2. Which of the following is the correct way to configure an input capture to trigger on a rising edge in embedded C?
      easy
      A. Clear the timer counter register
      B. Set the capture edge select bit to 0
      C. Set the capture edge select bit to 1
      D. Enable the PWM output mode

      Solution

      1. Step 1: Identify capture edge select bit meaning

        Usually, setting the capture edge select bit to 1 configures capture on rising edge; 0 is for falling edge.
      2. Step 2: Match options with rising edge setting

        Set the capture edge select bit to 1 sets the bit to 1, which is correct for rising edge trigger.
      3. Final Answer:

        Set the capture edge select bit to 1 -> Option C
      4. Quick Check:

        Edge select = 1 for rising edge [OK]
      Hint: Rising edge capture usually means edge bit = 1 [OK]
      Common Mistakes:
      • Confusing edge select bit values
      • Trying to clear timer instead of setting edge
      • Enabling unrelated PWM mode
      3. Given this code snippet for input capture:
      volatile uint16_t captured_value = 0;
      void ISR_InputCapture() {
        captured_value = TIMER_CAPTURE_REG;
        CLEAR_CAPTURE_INTERRUPT_FLAG();
      }
      
      // Assume timer increments every 1us
      // Input event occurs at 1500us
      
      What will be the value of captured_value after the input event?
      medium
      A. 1500
      B. 0
      C. Timer overflow value
      D. Undefined

      Solution

      1. Step 1: Understand timer and capture behavior

        The timer increments every 1 microsecond, so at 1500us the timer count is 1500.
      2. Step 2: ISR captures timer value on input event

        The ISR stores the current timer count (1500) into captured_value.
      3. Final Answer:

        1500 -> Option A
      4. Quick Check:

        Timer count at event = captured value = 1500 [OK]
      Hint: Captured value equals timer count at event time [OK]
      Common Mistakes:
      • Assuming captured value resets to zero
      • Confusing overflow with current count
      • Ignoring ISR capture assignment
      4. Identify the error in this input capture interrupt service routine:
      void ISR_InputCapture() {
        uint16_t value = TIMER_CAPTURE_REG;
        process(value);
        CLEAR_CAPTURE_INTERRUPT_FLAG();
      }
      What is the main problem?
      medium
      A. The process function should not be called inside ISR
      B. The interrupt flag is cleared before reading the capture register
      C. The ISR does not enable the timer
      D. The captured value is stored in a local variable and lost after ISR ends

      Solution

      1. Step 1: Analyze variable scope in ISR

        The variable value is local to ISR and lost after ISR finishes.
      2. Step 2: Consider data usage outside ISR

        If the captured value is needed elsewhere, it should be stored in a global or volatile variable.
      3. Final Answer:

        The captured value is stored in a local variable and lost after ISR ends -> Option D
      4. Quick Check:

        Local variable in ISR = lost data [OK]
      Hint: Store captured data in global variable, not local [OK]
      Common Mistakes:
      • Clearing interrupt flag too early
      • Not enabling timer before capture
      • Avoiding function calls in ISR (not always wrong)
      5. You want to measure the pulse width of a signal using input capture mode on a timer. Which approach correctly uses input capture to find the pulse width?
      hard
      A. Reset timer on every input event and read timer after fixed delay
      B. Capture timer value on rising edge, then capture again on falling edge; subtract first from second
      C. Capture timer value only on rising edges and multiply by 2
      D. Use input capture only on falling edges and ignore rising edges

      Solution

      1. Step 1: Understand pulse width measurement

        Pulse width is the time between rising and falling edges of a signal.
      2. Step 2: Use input capture on both edges

        Capture timer value at rising edge (start) and falling edge (end), then subtract to get pulse width.
      3. Final Answer:

        Capture timer value on rising edge, then capture again on falling edge; subtract first from second -> Option B
      4. Quick Check:

        Pulse width = falling edge time - rising edge time [OK]
      Hint: Measure pulse by capturing rising and falling edges [OK]
      Common Mistakes:
      • Capturing only one edge and guessing width
      • Resetting timer incorrectly
      • Ignoring one edge of the pulse
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard