Hola, para lo que necesitas, si el pulso siempre es de 4 ms... tienes que calcular el periodo (inversa de la frecuencia) para saber cual es el tiempo total del ciclo, y restarle tus 4 ms...
por ejemplo para 14hz
1/14=0,0714285714285714285714285714285714
que serian 71428 microsegundos
este retardo lo puedes hacer con 3 o 4 registros y un lazo de espera... o el tmr0...
luego, calcula los retardos para cada frecuencia, y segun el pulsador que se actue, marcas una bandera, y llamas al retardo correspondiente....

Suerte!
Norberto