I am in the process of designing a function generator and I needed a frequency counter to check it against. This project uses a minimal number of components for a very economical and compact design. A bare-bones Arduino clone is at the heart of this project and the measured frequency is shown on an LCD display.
The maximum frequency that this can measure is about 8 MHz (at a 50% duty cycle). Despite the fact that this counts the frequency on one of the digital pins, I have found that it will quite happily measure sine and triangle waves providing that they have a suitable amplitude.
Although the version that I built is a standalone unit, this circuitry could be easily incorporated into another project such as a function generator.
For more detail: Frequency Counter