There are couple of free frequncy counter designs and weeder
is one of them. PIC can count signals which are faster than it's
own clock because of built-in prescaler. If you want to count
even faster signals (over 50MHz or whatever limit your counter has)
simply add prescaller. That's just another divider stage. If you select
divide by ten (decade counter) you get 10x the range or in this
case 50MHz*10=500MHz max. for example.
If you cascade two of them you get 100x range etc.
Since decade counters are not quite common for this frequency range
lot's of people uses other solutions. Just google "prescaler" or check
this out:
https://www.qsl.net/n9zia/pre/
They post schematic only in lousy postscript format. To save you from
big download and installation of ghostscript I'm attaching schematic
as GIF graphic.
Measuring slow signals is different. One approach is to use PLL
chip and multiply input signal 10, 100 or even 1000 times
so you get the direct readout on regular counter. Problem is that
not everyone likes to fiddle with PLL and this is usually good only in
fairly narrow range (good to measure AC line frequency).
Other method is use own signal (crystal oscilator of known frequency)
and count it's pulses but use slow changing signal to control gate.
This gives you value which is proportional to period (T) of measured
signal. To get the frequency just calculate:
f=1/T
Hope this helps.