TODOPIC

Otros Microcontroladores / Dispositivos programables => Lógica Programable => Mensaje iniciado por: CesarGomez en 18 de Abril de 2017, 15:39:11

Título: ayuda cronometro
Publicado por: CesarGomez en 18 de Abril de 2017, 15:39:11
buen día señores, en una materia de mi carrera, debo realizar un cronometro, una de mis preguntas es como realizar el antirrebote ya que debo tener tres pulsadores un start/stop, un lap y un reset, anexo mi programa el cual tambien tengo otro incoveniente con la estructura de este, adjunto imagenes y programa en txt, agradezco cualquier colaboracion y sugerencia, muchas gracias.

 - Tienes que ingresar para ver archivos adjuntos -  - Tienes que ingresar para ver archivos adjuntos -
Título: Re:ayuda cronometro
Publicado por: manwenwe en 18 de Abril de 2017, 16:13:49
Yo lo que suelo hacer es coger una variable y ponerla a su valor medio y esperar a que desborde un limite por arriba o por abajo. Por ejemplo, inicializa una variable a 1000 y cada vez que veas un '1' en la linea le sumas 1 y cuando veas un '0' le restas 1, si ves que la variable llega a 500 es que tienes un '0' lógico y si llega a 1500 es que tienes un '1' lógico. Claro que eso tienes que ajustarlo a tú reloj porque evaluarlo a 100mhz de ciclo de reloj (facil en una fpga) puede ser evaluarlo demasiado rápido: entonces cambias los valores a los que se desborda...

En C es sencillo, en hdl supongo que también pero estoy oxidado :P

Saludos!
Título: Re:ayuda cronometro
Publicado por: KILLERJC en 18 de Abril de 2017, 17:10:12
Algo asi como dice manwewe

http://www.digilogic.es/pulsador-antirrebote-en-vhdl-debouncing/
Título: Re:ayuda cronometro
Publicado por: CesarGomez en 18 de Abril de 2017, 18:00:04
muchas gracias manwenwe y KILLERJC por estar atentos a mi inquietud, la verdad lo estoy haciendo por medio de un contador el cual contara segun la formula del link enviado por KILLERJC, este contara hasta 250.000  e ira incrementando las decimas de segundos y asi sucesivamente con cada formato, el problema es que utilizo en dos ocasiones el reloj y un contador y me muestra el error en la imagen adjunta, adjuntare el programa para facilitar entendimiento - Tienes que ingresar para ver archivos adjuntos - , gracias.
Título: Re:ayuda cronometro
Publicado por: KILLERJC en 18 de Abril de 2017, 23:19:49
Si no me equivoco el problema viene porque hay 2 o mas procesos que asignan valores a un mismo registro/variable/etc.

divisor100hz asigna valores a C1,M1,etc
Pero sincronizacion lo hace tambien

Hace mucho que no "programo" en VHDL, pero no te conviene hacer como una especie de "modulo" que transforme el binario en 7 segmentos, de esa forma repetis el modulo para cada "salida" en binario. A mi entender parece que queres hacer todo junto.