TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: gusanoloco en 25 de Marzo de 2004, 19:23:00
-
Pues eso, que tengo un proyecto entre manos en el cual necesito medir con precision la longitud de un impulso que puede ir entre 800 y 2200 microsegundos con un intervalo de mas o menos 16 milisegundos,
actualmente lo hago entrando en un bucle y mirando el estado del pin y si esta en alto voy haciendo pausas de cuatro microsegundos y aumento una variable en incrementos de cuatro en cuatro unidades hasta que el pin vuelve al estado bajo,
es decir asi:
senal=1 "flanco positivo para comienzo de señal
longitudpulso=0 "longitud del pulso
principal:
while entrada=senal "si hay flanco de señal en puerto de entrada
longitudpulso=longitudpulso+4 "acumula para saber longitud del pulso
pauseus 4
wend
if longitudpulso>0 then
serout terminal,2,[#longitudpulso,10,13]
longitudpulso= 0
else
goto ----- otras rutinas de programa -----
---como ya dije el intervalo es de +/- 16 ms de modo que
---hago algunas cosillas y vuelvo otra vez aqui.
endif
goto principal
pero no se si hay una forma mejor o mas precisa para hacer esto.
cualquier sugerencia sera bienvenida.
Un Saludo a tod@s
-
Cual es la precision de PULSIN ??

-
2 us a 20 mhz, por que? no entiendo tu pregunta.
-
hola gusanoloco!!!
casualidad pero estoy trabajando en algo parecido
ojala podamos unir fuerzas y resolver esto, estoy preparando varias rutinas si funciona te hare saber al igual te agradeceria si encuentrs solucion antes, me lo hagas saber
gracias
suerte
Pedocles
-
hola gusanoloco
con que trabajas? con un PIC? y si, con cual?
tu tienes la posibilidad de medir el tiempo de un impulso con el Capture del PIC.
Saludos Pablo
-
Esa es la buena, sí señor.
Capturas el flanco ascendente, luego el descendente, mides el tiempo que ha pasado entre ambas capturas y tienes el tiempo del impulso.
Si es una señal cuadrada, pués tienes su semiperiodo, y a partir de este puedes sacar la frecuencia: aplicación del PIC como frecuencímetro.
Un saludo