> I need to measure a continuous frequency between 0 - 250 cycles/MINUTE, > and transmit it via RS-232 at 2400 baud in a message containing 6 bytes > once 5 seconds. > > The PIC I plan to use is the low power 84 variant, running at 32 KHz, > if possible. I'd suggest doing the following: [1] Use the following variables: CurrTime : 16-bit LastEvent : 16-bit LastEvLatch : 16-bit PrevEvent : 16-bit NextOutput : 16-bit NumCounts : 8-bit NumCtLatch : 8-bit PrevCounts : 8-bit [2] Every 1/256 second (note: the time from the start bit to the beginning of the stop bit is just under 1/256 sec at 2400 baud) do the following: CurrTime++; if (EventHappened) { LastEvent=CurrTime; NumCounts++; } if (--NextOutput) { NextOutput = 1560; /* 256*5 */ LastEvLatch = LastEvent; NumCtLatch = NumCounts; } [3] To initialize, set NextOutput to 1560 and everything else to zero. [4] For the main loop, run this: ..gotta go--will finish later.