Buenos días. Tengo un problema con mi ciclo for en un programa que estoy haciendo.
Mi proyecto es un diseñar un reloj con el pic18f4550 y mostrarlo en un lcd.
He usado ciclos for para llevar la cuenta de los segundos, los minutos y las horas con sus temporizadores.
El programa trabaja bien, se respetan los tiempos y todo funciona perfectamente.
Mi problema es que cuando el segundero termina un ciclo y debe volver a cero, no lo hace, sino que comienza a mostrar una serie de números y al llevar 10 números vuelve a la normalidad.
Para que lo vean más gráficamente es así:
segundero= 57, 58, 59, 09, 19, 29, 39, 49, 59, 69, 79, 89, 99, 10, 11... Y luego funciona correctamente hasta que vuelve a terminar el ciclo, es decir, hasta que llega a 59 y vuelve con el mismo error.
He probado con no mostrar el valor que el ciclo for aumenta, sino otra variable distinta y me tiene el mismo problema.
Espero alguno de ustedes pueda ayudarme.
Abajo les anexo la parte del código a ver que me recomiendan.
El programa compila perfectamente, y la simulación es en proteus.
Mi proyecto es un diseñar un reloj con el pic18f4550 y mostrarlo en un lcd.
He usado ciclos for para llevar la cuenta de los segundos, los minutos y las horas con sus temporizadores.
El programa trabaja bien, se respetan los tiempos y todo funciona perfectamente.
Mi problema es que cuando el segundero termina un ciclo y debe volver a cero, no lo hace, sino que comienza a mostrar una serie de números y al llevar 10 números vuelve a la normalidad.
Para que lo vean más gráficamente es así:
segundero= 57, 58, 59, 09, 19, 29, 39, 49, 59, 69, 79, 89, 99, 10, 11... Y luego funciona correctamente hasta que vuelve a terminar el ciclo, es decir, hasta que llega a 59 y vuelve con el mismo error.
He probado con no mostrar el valor que el ciclo for aumenta, sino otra variable distinta y me tiene el mismo problema.
Espero alguno de ustedes pueda ayudarme.
Abajo les anexo la parte del código a ver que me recomiendan.
Código:
for (hora=0;hora<=12;hora++)// ciclo para la hora
{ lcd_gotoxy(4,3);
printf(LCD_PUTC,"%i",h);
h++;
for (minu=0;minu<=59;minu++) // ciclo para los minutos
{
lcd_gotoxy(7,3);
printf(LCD_PUTC,"%i",m);
m++;
for (segu=0; segu<60; segu++) // ciclo para los segundos
{for (i=0;i<=1;i++)
{
bit_clear(pir1.0);
set_timer1(0xBDC);
while(!PIR1);
}
lcd_gotoxy(10,3);
printf(LCD_PUTC,"%i",s);
s++;
}
s=0;
}
m=0;
}
h=0;
Última edición por un moderador: