Input : Square wave which sweeps over time domain. (about 1 MHz)
Output: The time period of high/low value.

Like the timer does, I would like to know the actual time (in sec) when the input goes high or low as well as the proper way to implement it.

For example, use FPGA or Microcontroller to read it via analog input.
OR there is the tool that straight to the point! Please let me know.

  • $\begingroup$ Read about "Input Capture" here: en.wikipedia.org/wiki/Input_capture $\endgroup$
    – John
    Mar 21, 2015 at 17:56
  • $\begingroup$ Thanks John, this link gave me some helpful information. :) $\endgroup$
    – pakornosky
    Mar 22, 2015 at 17:12

1 Answer 1


If it is not a noisy signal you could use a technique called "zero crossing" to gate a counter. You may use an FPGA to create accumulators to add up times and down times.

  • $\begingroup$ Thanks for your answer, I got it. FPGA has timer to do this job. In this approach, I feel like taking a sledgehammer to break a nut! FPGA is over-kill this kind of works. The thing I needed sounds like high-speed timer circuit which outputs in digital. $\endgroup$
    – pakornosky
    Mar 22, 2015 at 17:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.