How about using a nanosleep() less than 2ms multiple times to add up to your 15ms? You'd probably have to check the time at each return and recalculate for any overage, but that doesn't sound too outrageous.
_________________________
Bitt Faulk