gráfico de máquina de estado de rebote

0

Necesito hacer el gráfico para una máquina de estado que desprecie una señal de entrada, manteniendo la señal de entrada alta / baja actual durante un tiempo determinado, y para calcular este tiempo im usando un contador. Estoy teniendo muchos problemas con el diseño del gráfico para esta máquina de estado, por lo que cualquier ayuda sería bienvenida. Soy muy inexperto con el hardware, por favor, solo aviseme si necesita más detalles.

edit: olvidé mencionar que ya poseo las máquinas de estado del circuito (en cierto modo), solo necesito ayuda para hacer las gráficas. Esto iré agregando imágenes de las señales y del circuito.

edit2:siguiendolasugerenciapasoapasoquehiceunintentodehacereldiagrama,megustaríasabersipudellegaralarespuestacorrecta.

tengaencuenta:lasvariablesenlasflechasson:laseñaldeentrada,tiempodeesperaylassalidasdentrodelasburbujasson:salida,claro

    
pregunta Motoboy

2 respuestas

0

No voy a hacer tu tarea, pero simplemente te daré algunas pistas para que comiences.

Primero define los estados. Estas son "situaciones" en las que el hardware o dispositivo lógico puede lograr. Sugeriría los siguientes cuatro estados:

Estado A - DESACTIVADO: la entrada del interruptor se rebota y definitivamente es estable en la condición APAGADO y la salida del circuito está en la condición APAGADA (llámela "0", o lógica BAJA).

Estado B - APAGADO con ENCENDIDO Detectado - La salida es BAJA, pero se detectó un máximo instantáneo en la entrada del interruptor (por ejemplo, alguien está comenzando a presionar el interruptor y está saltando).

Estado C - ENCENDIDO: la entrada del interruptor se rebota y es definitivamente estable en la condición de ENCENDIDO y la salida del circuito está en la condición de ENCENDIDO (llámelo "1" o lógica ALTA).

Estado D - ENCENDIDO con APAGADO Detectado - La salida es ALTA, pero se detectó un BAJO instantáneo en la entrada del interruptor (por ejemplo, alguien está comenzando a soltar el interruptor y está rebotando).

A continuación, debe definir las Condiciones de transición que lo llevarán de un estado al siguiente. Estas son las flechas entre las burbujas en un diagrama de estado tradicional. Por ejemplo, para pasar del estado A al estado B, necesita una condición de transición llamada algo "Push Detected" o "On Detected". Para pasar del estado B a A, necesita una condición llamada "Liberación detectada" o similar.

También necesitarás una variable paramétrica. En este caso, sería un temporizador o un contador de reloj. Una variable que se incrementa en un valor fijo, como 1 mili-segundo. Mientras el estado permanece en el estado B Si el temporizador llega a 5 milisegundos, tiene una condición de transición llamada algo así como "Tiempo de espera", que lo lleva al estado C.

¿Ves? Debe "deletrearlo" en burbujas, flechas y variables, así como usted mismo es el circuito lógico que está realizando la tarea de desmontaje. Incluso una tarea simple como anunciar un interruptor puede tener un diagrama de máquina de estados bastante complicado. El código para realizar el rebote en una aplicación real será más fácil de escribir que dibujar el diagrama de la máquina de estados. Pero dibujar la máquina de estados y analizar el problema es una manera excelente de aprender el tema.

Trate de usar otros ejemplos de Diagrama de máquina de estados (por ejemplo, de libros de texto o recursos en línea) para otros problemas para guiar sus esfuerzos con su tarea actual.

    
respondido por el FiddyOhm
0

Ya que esta es una pregunta para la tarea, solo te daré algunos consejos para que comiences, en lugar de una respuesta completa.

El concepto clave para usar una máquina de estados síncrona para medir los intervalos de tiempo se basa en la suposición implícita de que la máquina de estados pasa un cierto tiempo mínimo en cada estado, y ese tiempo es el período del reloj.

Por lo tanto, para medir un intervalo de tiempo específico, necesita averiguar cuántos períodos de reloj van a ser, y luego tener tantos estados en su máquina de estado en los que se secuencia. El tiempo transcurrido desde el primer estado hasta el último estado será el intervalo de tiempo requerido.

La forma más eficiente de codificar un gran número de estados es usar un contador binario. ¿Es esto suficiente para ponerte en marcha?

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas