Hi,
I might be missing something here but where does IOC fit in?
The tast is to generate pulses with a specific and precise delay during which the ADC measurements will performed. There's no pulses comming into the PIC as far as I understand.

Can you be a little more specific on the dynamic range of the output frequency? You mention 1-3000Hz down to 3 decimal places, is that a hard requirement? (I haven't crunched any numbers yet but I don't think that's doable).

Here's what I'm thinking:
* Calculate a suitable timer prescaler and timer value for the needed delay and set the timer up accordingly
* Set output high
* Start the timer
* Go do the ADC conversion and output result.
* Poll timer interrupt flag in tight loop
* Set output low
* Stop timer, reload value for correct delay, restart
* Go do the ADC coversion and output result
* Poll timer interrupt flag in tight loop
* Rince and repeat.

The issue here is that with a very low frequency (1Hz) there might not be enough bits in the timer/prescaler and you'd have to resort to counting multiple overflows (very doable but adds a bit of complexity). At the other end of the spectrum (3000Hz) there won't be enough resolution to resolve 2999.998 or 2999.999Hz. In fact, there probably won't be at the low end either.

Finally, DT-Ints is in no way restricted to "fixed frequency". Perhaps the examples shown is USING a fixed frequency but that's not the same thing. Anyway, I think DT-Ints is probably overkill and will add unneccesary overhead for the requirements stated.

/Henrik.