Hey Resistencio! gracias por responder.....
respondere a tus preguntas
que resolucion necesitas en la medicion ???
el timer0 cuenta hasta FF, osea 255 us (con cristal de 4MHz), y yo necesito llegar hasta los 5 ms como max (no 10 como dije arriba, me equivoque

) asi que ocupare el divisor de frecuencia en 32, lo que me da un tiempo base de 32 us, ya que ahi puedo contar hasta 255*32=8,16 ms. Ahora, con este divisor de frecuancia, mi resolucion de grados es = 90º * ( 32 us / 5000 us) = 0,576º. (tengo entendido que el tmr1 del 628 tiene un timer de mejor resolucion, pero aun no lo estudio, hasta el momento seria asi con el tmr 0 ).
pero podrias necesitar saber si el cruce x 0 de la I o de la V, , se produce a los 10us, por ejemplo ???
esta pregunta no la entendi

sorry...
Seria importante saber cual PIN mide la I y cual la V ??? (dependiendo del tipo de carga, digo !!!) O teniendo el dato alcanza ???
exacto, necesito saber cual señal cruza por cero primero, para asi poder indicar, mediante un display, o un led, si la carga es capacitiva o inductiva. Si primero cruza la tension por cero es inductiva, si primero lo hace la corriente, es una carga capacitiva.
Cual es la formula para calcular el FP en funcion de los tiempos ???
bueno, existe una relacion lineal entre el tiempo y el ángulo de una funcion cosenoidal. Los 90º corresponden a 5 ms (para 50 Hz), por lo tanto, mediante un proporcion se puede calcular el ángulo que corresponda. Por ejemplo, si el timer midio un tiempo de 1 ms, el angulo que le corresponde es el siguiente:
fi = 90º * (1 ms / 5 ms) = 18º de desfase.
para calcular el fcactor de potencia solo debo calcular el coseno del angulo "fi" de desfase : fp = cos (fi). De bido a lo anterior es que quiero realizar mi programita en basic, para poder calcular el coseno. Si lo hago en ASM debere ocupar algun artilugio matematico para calcular el coseno por un metodo aproximado. ademas quiero mostrar el resultado en display, lo que es mas facil tambien en basic.
El maximo error de medicion se produciria cuando el angulo sea 90 º o cercano (ya que en la funcion coseno, la maxima derivada se produce a los 90º grados, o sea, una pequeña variacion del angulo, produce una gran variacion del fp ). Este error seria de: e = |cos ( 90º) - cos (90º - 0,576º)| = 0,0101 = 1,01 % de error.
El minimo error se produce cuando el angulo es igual o cercano a 0º (ya q la derivada es minima en ese puento, es cero. Una variacion del angulo produce variaciones muy pequeñas del fp ). Este error seria de: e = |cos (0º) - cos(0,576º)| = 0,00005 = 0,005 %.
Lo bueno es que los valores que mas importa medir son para angulos mas cercanos a cero que a 90º. Por ejemplo en mi pais (Chile) no se debe tener un angulo superior a 21, 57º (fp = 0,93) para no ser multado.
Y muchas gracias por tu colaboracion, te pasaste. Cuando estudie un pokito mas revisare bien las instrucciones que pusiste ahi. Espero haber entendido bien las respuestas, y no haber dado mucho la lata jeje.....saludos