I have been using PIC18 micro-controller for generating reference signal and a charging signal at 100 Hz rate max. Now I have to generate this charging signal after sensing an external trigger pulse of width 15us with frequency in between 1 to 100 Hz. I am using 4 timers of PIC18 for different purposes and one timer is available. I am thinking of using external interrupt on rising edge but how to check 15uS pulse width. I mean what if the external pulse only rises to logic high and doesn't go to logic low. How would I know that? How to verify that the input pulses are in integer format only i.e. 1Hz, 2Hz and not 1.5Hz or any other values? How to mark limit for sensing up to 100 Hz only?
Since you're only checking if a signal of a specified frequency range is being received, and not its width/duty (as per your comment), you can setup the (E)CCP module to capture some rising (or falling) edges to get the period of your signal. From that you can calculate the signal frequency and act accordingly.
You can easily discriminate between a valid signal and DC because dc would simply not have a period while random noise can be filtered out.
If the ECCP module is not available (or it's not suitable to capture your frequencies, I don't honestly remember right now its usable range) you can setup a timer to emulate it in software by reading how much time passes between two or more rising or falling edges.