Pulso de disparo externo

0

He estado usando el microcontrolador PIC18 para generar una señal de referencia y una señal de carga a una velocidad máxima de 100 Hz. Ahora tengo que generar esta señal de carga después de detectar un pulso de disparo externo de ancho 15us con frecuencia entre 1 y 100 Hz. Estoy usando 4 temporizadores de PIC18 para diferentes propósitos y hay un temporizador disponible. Estoy pensando en utilizar una interrupción externa en el flanco ascendente, pero cómo comprobar el ancho de pulso de 15 uS. Quiero decir, ¿qué pasa si el pulso externo solo sube a la lógica alta y no baja a la lógica? ¿Cómo podría saber eso? ¿Cómo verificar que los pulsos de entrada están en formato entero solo, es decir, 1Hz, 2Hz y no 1.5Hz o cualquier otro valor? ¿Cómo marcar el límite para detectar hasta 100 Hz solamente?

    
pregunta Maanas

1 respuesta

0

Ya que solo está verificando si se está recibiendo una señal de un rango de frecuencia específico, y no su ancho / servicio (según su comentario), puede configurar el módulo (E) CCP para capturar algo en aumento (o caída) ) bordes para obtener el periodo de su señal. A partir de eso puedes calcular la frecuencia de la señal y actuar en consecuencia.

Puedes discriminar fácilmente entre una señal válida y DC porque dc simplemente no tendrá un período, mientras que el ruido aleatorio se puede filtrar.

Si el módulo ECCP no está disponible (o no es adecuado para capturar sus frecuencias, honestamente no recuerdo su rango utilizable), puede configurar un temporizador para emularlo en el software leyendo cuánto tiempo pasa entre dos o más bordes ascendentes o descendentes.

    
respondido por el zakkos

Lea otras preguntas en las etiquetas