tu problema son los delays
todo eso es tu problema
todo eso es tu problema
Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature currently requires accessing the site using the built-in Safari browser.
Mira este sencillo código:Dejo archivos sobre este proyecto por si sirve para aclararme algo más.
Gracias a cualquier curioso que se moleste en mirarlo buscando fallos.
#include <16f877.h>
#use delay(crystal = 4MHz)
void main (void)
{
int8 unidades,decenas,puerto;
while (true)
{
puerto = input_b();
if(puerto > 99){puerto = 99;} // No permitir que "puerto" sea mayor a 99
decenas = (puerto / 10); // Obtener las decenas.
puerto -= (decenas * 10); // puerto = puerto - (Decenas * 10)
unidades = puerto; // para obtener las unidades.
// Multiplexar los displays.
output_c(unidades + 32); // Mostrar unidades, activar display 2 y desactivar Display 1
delay_ms(2); // Retardo para mostrar las unidades.
output_c(decenas + 16); // Mostrar decenas, activar display 1 y desactivar display 2
delay_ms(2); // Retardo para mostrar las decenas.
}
}
Esa es una forma de realizar una máscara en un número.He observado que 32 afecta al pin 6 y el 16 al PIN 4. ME GUSTA
Porque no se están usando únicamente 4 bits del puerto B.No entiendo como puede pasar de 15 utilizando solo 4 bits del PORTB.
Te agradecería mucho que me detallases ésto, D@rkbytes.
Creo que con la explicación que te di, ya lo podrás comprender ahora.99 = 0110 0011 y esto no me aclara.
Eso está explicado en este mismo tema.3: en el programa que muestro, en que parte configuras la activación para que se encienda y se apague un display de 7 segmentos.
De la forma clásica; usando un arreglo para obtener los bits de los segmentos y separar las decenas y unidades de la cifra a mostrar.4: en el foro hablas de que se puede hacer de otra formay que trae mas programa, cual seria ea forma
int n=7;
void main (){
while(TRUE)
{
int arreglo [n] ;
}
}
Estudiando los arreglos en el lenguaje C.Cómo puedo hacer que el arreglo acepte mi variable global?
//... librerías necesarias
int n=7;
void main (){
int arreglo [n];
while(TRUE)
{
//... Se hace algo...
}
}
//... librerías necesarias
#define TAMANIO_ARRAY (unsigned int)(7)
void main (){
int arreglo [TAMANIO_ARRAY];
while(TRUE)
{
//... Se hace algo...
}
}
Eso solo se puede hacer si el compilador soporta los VLA del ANSI C99 que no es el caso de los sistemas embebidos.No es muy útil utilizar una variable para definir el tamaño de un array si este será de un tamaño fijo
Eso solo se puede hacer si el compilador soporta los VLA del ANSI C99 que no es el caso de los sistemas embebidos y de casi ningún compilador mas o menos estándard. EL GCC lo soporta de forma sui-generis y los compiladores que lo admiten generalmente arman un despelote con el stack.No es muy útil utilizar una variable para definir el tamaño de un array si este será de un tamaño fijo