Estuve viendo el ASM que ofrece la página y hay uno de 750 a 8000RPM bastante interesante, pero tiene un problema, por debajo de las 750RPM el tiempo de retardo lo mantiene en 5ms, que estaría bien para que quede a más o menos 0 grados, pero eso a 750RPM, por debajo de estas el tiempo de retardo de 5ms es insuficiente y el auto comienza a avanzarse.
Si querés programar algo de 0, el tiempo entre chispa y chispa en un auto de 4T y 4 cilindros es 60segundos dividido RPM dividido 2 (2 chispas por vuelta). Si a este valor lo dividís por 180 (porque por cada 360 grados tenés 2 chispas detectadas) tenés el tiempo entre grado y grado, a ese valor lo multiplicás por los grados que querés atrasar.
Por ejemplo: 1000RPM atrasar 15 grados.
60s/1000RPM/2=0.03 -> 30ms tarda entre señal y señal del distribuidor.
0.03/180=0.0001666ms por cada grado de giro del cigüeñal.
Si quiero avanzar 15 grados: 0.0001666ms x 15=0.0025ms que es el tiempo de retraso que tiene que hacer el PIC hasta emitir la chispa.