> I'm going to have to build one of these.  Assume you have some sort of 
> circuit that converts low-voltage AC from a transformer secondary to a 
> pulse train, start a timer, and count x amount of pulses?

Hi Ben,

Any microcontroller will allow you to poll for or capture events. Many even 
have capture/timer capability in h/w. Using a continuously running multi-byte 
timer you just subtract the current time from the previous time to get time 
interval (period). The traditional method of starting or resetting a timer 
after each event is prone to accumulated timing errors. Making periodic 
snapshots of a continuous timer avoids this.

Note that timer wrap-around is transparent for binary counters, as long as your 
timer won't wrap twice between events. For example, a 16-bit 1 MHz timer is 
more than sufficient for measuring 60 Hz events (since 16667 < 65536) with 1 us 
resolution.

In pseudo-code:

event()
    time_now = get_timer()
    interval = time_now - time_then
    time_then = time_now
    serial_output(interval)

Now, there are subtle issues with how interrupts and timers work, depending on 
the microcontroller, but the basic idea of measuring the precise interval 
between moderately rapid events (like 50/60 Hz cycles) is simple.

/tvb
_______________________________________________
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

Reply via email to