Hi Chris. I don't think you need to use an ADC input for duty cycle. In MEASUREFREQ below, I used the chip to detect a 3KHZ tone. In the WAITHERE and MEASUREDUTY routine, I used "pause 1" to measure a pulse width up to 255 ms. I don't know what frequencies you're working with but, unless they are really high, you may be able to use something like this.

FREQ VAR BYTE
DUTYCYCLETIMER VAR BYTE
CLEAR 'CLEAR ALL VARIABLES

MEASUREFREQ:
Count GPIO.0, 10, FREQ
IF FREQ > 25 AND FREQ < 35 Then DOSOMETHING 'LOOKING FOR 30 = 3KHZ
GoTo MEASUREFREQ

WAITHERE:
IF GPIO.1 = 0 THEN WAITHERE 'WAIT FOR + PULSE TO MEASURE

MEASUREDUTY:
LET DUTYCYCLETIMER = (DUTYCYCLETIMER + 1)
PAUSE 1
IF GPIO.1 = 0 THEN FINISHED
GOTO MEASUREDUTY