Hola a todos !
Estoy trabajando con un sistema que medirá (entre otros parámetros) la duración de un impulso escalón y para ello pensé en la instrucción PULSIN
He implementado el siguiente circuito a la entrada del PIC (puede ser cualquiera)
Utilizo dentro del programa la siguiente secuencia de instrucciones:
REPEAT DELAYUS 1:UNTIL PIN = 1 'ME QUEDO ESPERANDO HASTA QUE EL PIN SE PONGA EN ESTADO ALTO
FLA = PULSIN PIN,HIGH 'PASO A LA VARIABLE "FLA" EL TIEMPO QUE PERMANECE EN ESTADO ALTO
PRINT AT 2,1,DEC FLA 'LO MUESTRO EN PANTALLA AL TIEMPO OBTENIDO
donde FLA es una variable tipo FLOAT que muestro con 3 decimales, PIN es el que utilizo para ingresar con la onda cuadrada y el lazo REPEAT ... UNTIL es para esperar a que ocurra el evento del impulso en su flanco ascendente.
Según el manual de Protón al trabajar con un cristal de 20 Mhz., las unidades que se cargarán dentro de PULSIN corresponderán a un intervalo de 2uS, por lo que al medir una onda cuadrada de 50 Hz (frecuencia de línea) FLA debiera cargarse con un valor de
50005000 veces 2uS es igual a 10 mSeg., es decir que el tiempo que dura un semiciclo "es" de 10 milisegundos y éso debiera obtener.
Sucede que obtengo un valor de 5240 aproximadamente.
Mayor precisión en la forma de onda de entrada al PIC no creo poder lograr (lo veo en el osciloscopio y es impecable), entonces mi duda parte hacia la precisión del PULSIN y de la cantidad de tiempo "físico" que ocupan las instrucciones, a pesar de que 240 me parece un valor muy alto y no comprendo de donde puede provenir.
Es por ésto que acudo a quienes puedan tener experiencia en el uso y aprovechamiento de ésta instrucción.
Por cierto muy agradecido a quienes me puedan ayudar.
Gracias y saludos a todos.
Mario