Bueno, el error es que en la sección de horas, las convierto a segundos y suma genial, hasta que llega a 18 horas me arroja basura.
Les muestro el código para ver si encuentran algún error.
Les muestro el código para ver si encuentran algún error.
PHP:
#include <16f877.h>
#fuses HS
#fuses NOWDT
#fuses NOPROTECT
#fuses NODEBUG
#fuses NOLVP
#byte Puerto_A=05
#byte Puerto_B=06
#byte Puerto_C=07
#byte Puerto_D=8
#byte Puerto_E=9
#Use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_c6,rcv=PIN_c7)
#include <lcd.c>
////****variables globales****/////
unsigned long int h_1;
long int n,h,m,i,s,suma;
long int m_1;
///***************************///
#INT_RB
conteo_1()
{delay_ms (10);
if (bit_test (Puerto_B,5)) //Peticion de Hora
{
lcd_gotoxy(2,1);
printf (lcd_putc,"H:%lu",h);
h_1 = ((h*3600));
h=h+1;
// lcd_gotoxy(2,2);
// printf (lcd_putc,"t:%lu",h_1);
}
if (bit_test (Puerto_B,6)) //Peticion de Minutos
{
lcd_gotoxy(7,1);
printf (lcd_putc,"M:%lu",m);
m_1 = (m*60);
m=m+1;
}
if (bit_test (Puerto_B,7)) //Peticion de Segundo
{
lcd_gotoxy(12,1);
printf (lcd_putc,"S:%lu",s);
s=s+1;
}
if(bit_test(Puerto_B,4))
{
//Puerto_C=0b00010000;
//delay_ms(2000);
//Puerto_C=0b00000000;
//delay_ms(2000);
lcd_gotoxy(1,2);
printf (lcd_putc,"%lu",n);
n = n +1;
}
// Suma //
suma = h_1 + m_1 + s;
lcd_gotoxy(2,2);
printf (lcd_putc,"Total:%lu",suma);
if (n > suma)
{
lcd_putc("\f");
lcd_gotoxy(2,2);
printf (lcd_putc,"Stop");
}
//mostar en pantalla lcd
}
main()
{n=0,m=0,h=0,s=0;
Set_Tris_A(0b00000000);
Set_Tris_B(0b11111111);
Set_Tris_C(0b10000000);
Set_tris_D(0b00000000);
Set_tris_E(0b00000000);
lcd_init();
//lcd_putc ("\f");
enable_interrupts(INT_RB);
enable_interrupts(Global);
lcd_gotoxy (i,1);
printf (lcd_putc,"Proyecto ");
lcd_gotoxy (i,2);
printf (lcd_putc,"Electronica");
delay_ms (300);
for (i=0;i<20;i++)
{
lcd_gotoxy (i,1);
printf (lcd_putc,"Proyecto ");
lcd_gotoxy (i,2);
printf (lcd_putc,"Electronica");
delay_ms (200);
}
printf (lcd_putc,"Iniciando.");
for (i=11;i<20;i++)
{
lcd_gotoxy (1,1);
printf (lcd_putc," Iniciando.");
lcd_gotoxy (i,1);
printf (lcd_putc,".");
delay_ms(200);
}
lcd_putc("\f");
lcd_gotoxy(2,1);
printf (lcd_putc,"H:%lu",h);
lcd_gotoxy(7,1);
printf (lcd_putc,"M:%lu",m);
lcd_gotoxy (12,1);
printf (lcd_putc,"S:%lu",s);
For(;
{
//printf ("total :");
/*
delay_ms (150);
if (bit_test (Puerto_B,0)) //peticion de hora
{
lcd_gotoxy(2,1);
printf (lcd_putc,"H:%lu",h);
h=h+1;
}
if (bit_test (Puerto_B,2)) //Peticion de Minutos
{
lcd_gotoxy(11,1);
printf (lcd_putc,"M:%lu",m);
m=m+1;
}
if (bit_test (Puerto_B,5)) //Peticion de Segundos
{
lcd_gotoxy(6,1);
printf (lcd_putc,"S:%lu",s);
s=s+1;
} */
}
}
Última edición por un moderador: