Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

10/05/2012 #1


descomponer entero en digitos
hola a todos, estoy haciendo un proyecto que lleva una FPGA. Entre otras cosas, tengo que adquirir una señal de un encoder, de esta señal obtengo el tiempo entre pulsos, que divido entre una constante, y me da un entero entre 0 y 1500. Este número luego he de mostrarlo por un lcd, por lo que necesitaría descomponer el número en los digitos, por ejemplo, si tengo 1234 rpm, me gustaría obtener 4 bytes que fueran el 1, el 2, el 3 y el 4. esto podría hacerlo dividiendo primero por 1000, luego restando el valor que haya obtenido por 1000, luego dividiendo por 100, y volviendo a restar..... pero eso hace que tenga que implementar por lo menos 4 divisores, y me gustaria hcer un codigo más compacto ya que el proyecto en general es bastante largo, ¿hay alguna función en vhdl que me permita hacer eso?, o alguna megafunction de quartus? la fpga que estoy programando es una cyclone IV, en vhdl con quartus.

Un saludo
10/05/2012 #2

Avatar de chclau

Conviene no usar divisores para nada.
Es mejor usar contadores, que hacen la division pero en frecuencia. Supongo que la medicion de tiempo la haces contando pulsos de reloj. Lo que tenes que hacer es usar varios contadores en cascada, todos usando el mismo reloj, como sigue:

Un primer contador es la constante de calibracion. Luego, por cada digito tenes un contador de 0 a 9. Cada contador (prescaler de calibracion y digitos) envia un carry out que es lo que usa el contador siguiente para contar hacia arriba.
11/05/2012 #3


no se me había ocurrido hacerlo con contadores en cascada! muchas gracias hoy lo probaré.

Un saludo
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.