TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: krlitoz90 en 31 de Marzo de 2013, 16:55:21
-
Hola amigos tengo un problema. Me encargaron realizar un contometro para un trabajo para una empresa. El problema es el siguiente el pic realiza muy bien el conteo y muestra los valores hasta 299 y cuando pasa a 300 y algo mas me salen otros digitos en las decenas y ni que decir cuando llega a 1000 tambien me salen otros valores en los millares. la ecuacion para descomponer cada digito la saque de un libro y cuandrando con la calculadora si salen muy bien pero no me muestra lo que quiero. Alguna ayuda se los agradeceria mucho. le adjunto el archivo zip
-
Ahí corrí tus archivos, salio ese error que indicas... al llegar a 300, pregunta que compilador estas empleando, nombre y versión.
Es importante como dato.
-
Prueba con esta función. Me ha funcionado siempre y es sencilla escalarla para cualquier cantidad de displays. Importante que la declaración de variables
int display_1; // Variable que muestra el caracter 1 en el display 1 más significativo
int display_2; // Variable que muestra el caracter 2 en el display 2
int display_3; // Variable que muestra el caracter 3 en el display 3
int display_4; // Variable que muestra el caracter 4 en el display 4 menos significativo
//******************* Rutina para Mostrar Número cualquiera base 10 en el Display 7 Segmentos ********************
void displayValor(long int valor){
// Descomponemos la cuenta en unidades, decenas y centenas para mostrar en cada display
display_1 = (valor / 1000) % 10; // Dígito más significativo. Millares
display_2 = (valor / 100) % 10; // Centenas
display_3 = (valor / 10) % 10; // Decenas
display_4 = (valor % 10); // Unidades
}
Para este caso, la variable "valor" es suficiente con declararla long int o de 16 bits por la cantidad de display, es decir; solo cuento hasta 9999.
Espero te sea útil.
Saludos