También puedes contar ciclos
y ajustar los distintos tiempos de cada bifurcación con NOPs. Te daría una precisión muy grande y no dependería de la frecuencia de barrido... PERO ES UNA MATADA! Técnicas así se pueden usar para pequeñas rutinas, pero no para un programa entero.
Por ejemplo, para el reproductor de samples de 1 bit a 22 y 11 KHz sí que tuve que sacar la calculadora y hacerlo así. No es nada recomendable. Y eso que se trataba de una rutinita diminuta!
En definitiva, puedes ignorar mi respuesta y quedarte con lo que te han dicho más arriba. Además, sí que puedes trabajar a nivel de interrupciones (v-blank) desde C. A nivel de ciclos, lo dudo mucho, la verdad...