unsigned int8 INT_EEPROMA = 0;
unsigned int8 INT_EEPROMB = 1;
unsigned int8 INT_EEPROMC = 2;
unsigned int8 INT_EEPROMD = 3;
unsigned int8 INT_EEPROME = 4;
unsigned int8 INT_EEPROMF = 5;
void menu_cronometro_1(void);
void menu_cronometro_2(void);
void menu_cronometro_3(void);
void cgram_reloj(void);
void cgram_reloj_1(void);
void cgram_flecha(void);
static unsigned int8 testado,i,k;
int segundos_total,minutos_total,aux;
static unsigned int8 eeprom_segundos_0=0, eeprom_minutos_0=0, eeprom_segundos_1=0, eeprom_minutos_1=0, eeprom_segundos_2=0, eeprom_minutos_2=0;
int const relojChar[8]={0,14,19,21,17,14,31,0};
int const flechaChar[8]={0,4,8,31,8,4,0,0};
#INT_EXT
void menu()
{
disable_interrupts(GLOBAL);
disable_interrupts(INT_EXT);
disable_interrupts(INT_EXT1);
disable_interrupts(INT_EXT2);
delay_ms(300);
testado=0;
lcd_putc("\f");
lcd_gotoxy(2,1); lcd_putc("AJUSTE OPCION: [ ]");
lcd_gotoxy(1,2); lcd_putc("[1] CRONOMETRO 1 ");
lcd_gotoxy(1,3); lcd_putc("[2] CRONOMETRO 2 ");
lcd_gotoxy(1,4); lcd_putc("[3] CRONOMETRO 3 ");
for(i=0;i!=255;i++)
{
delay_ms(20);
lcd_gotoxy(18,1);
printf(lcd_putc,"%u",testado);
if (!t_ok){delay_ms(300); break;}
else if (!t_mas){i=0; delay_ms(300); testado++; if(testado>3){testado=0;};}
else if (!t_mns){i=0; delay_ms(300); testado--; if(testado==255){testado=3;};}
if(testado==0){ lcd_gotoxy(18,2); printf(lcd_putc," "); lcd_gotoxy(18,3); printf(lcd_putc," "); lcd_gotoxy(18,4); printf(lcd_putc," "); }
if(testado==1){ cgram_flecha(); lcd_gotoxy(18,2); lcd_send_byte(1,0); lcd_gotoxy(18,3); printf(lcd_putc," "); lcd_gotoxy(18,4); printf(lcd_putc," "); }
if(testado==2){ cgram_flecha(); lcd_gotoxy(18,3); lcd_send_byte(1,0); lcd_gotoxy(18,2); printf(lcd_putc," "); lcd_gotoxy(18,4); printf(lcd_putc," "); }
if(testado==3){ cgram_flecha(); lcd_gotoxy(18,4); lcd_send_byte(1,0); lcd_gotoxy(18,2); printf(lcd_putc," "); lcd_gotoxy(18,3); printf(lcd_putc," "); }
};
if(testado==0)
{
intf=0; intf1=0; intf2=0;
enable_interrupts(GLOBAL);
enable_interrupts(INT_EXT);
enable_interrupts(INT_EXT1);
enable_interrupts(INT_EXT2);
lcd_putc("\f");
break;
}
else if(testado==1){menu_cronometro_1(); lcd_putc("\f");}
else if(testado==2){menu_cronometro_2(); lcd_putc("\f");}
else if(testado==3){menu_cronometro_3(); lcd_putc("\f");}
}
////////////////////////////////////////////////////////////////////////////////
// Submenu Ajuste RTC
//
///////////////////////////////////////////////////////////////////////////////
void menu_cronometro_1(void)
{
lcd_putc("\f");
lcd_gotoxy(5,1); lcd_putc("CRONOMETRO 1");
lcd_gotoxy(2,3); printf(lcd_putc,"TIEMPO 1: %02u:%02u",eeprom_minutos_0,eeprom_segundos_0);
cgram_reloj();
for(i=0;i!=255;i++)
{
delay_ms(20);
lcd_gotoxy(12,3); printf(lcd_putc,"%02u",eeprom_minutos_0); lcd_gotoxy(12,4); printf(lcd_putc,"--");
if(!t_ok){delay_ms(300); break;}
else if(!t_mas){i=0; delay_ms(300); eeprom_minutos_0++; if(eeprom_minutos_0>59) {eeprom_minutos_0=0;}; }
else if(!t_mns){i=0; delay_ms(300); eeprom_minutos_0--; if(eeprom_minutos_0==255){eeprom_minutos_0=59;};}
}; write_eeprom(INT_EEPROMA,eeprom_minutos_0);
for(i=0;i!=255;i++)
{
delay_ms(20);
lcd_gotoxy(15,3); printf(lcd_putc,"%02u",eeprom_segundos_0); lcd_gotoxy(12,4); printf(lcd_putc," --");
if(!t_ok){delay_ms(300); break;}
else if(!t_mas){i=0; delay_ms(300); eeprom_segundos_0++; if(eeprom_segundos_0>59) {eeprom_segundos_0=0;}; }
else if(!t_mns){i=0; delay_ms(300); eeprom_segundos_0--; if(eeprom_segundos_0==255){eeprom_segundos_0=59;};}
}; write_eeprom(INT_EEPROMB,eeprom_segundos_0);
intf=0; intf1=0; intf2=0;
enable_interrupts(GLOBAL);
enable_interrupts(INT_EXT);
enable_interrupts(INT_EXT1);
enable_interrupts(INT_EXT2);
}
////////////////////////////////////////////////////////////////////////////////
void menu_cronometro_2(void)
{
lcd_putc("\f");
lcd_gotoxy(5,1); lcd_putc("CRONOMETRO 2");
lcd_gotoxy(2,3); printf(lcd_putc,"TIEMPO 2: %02u:%02u",eeprom_minutos_1,eeprom_segundos_1);
cgram_reloj();
for(i=0;i!=255;i++)
{
delay_ms(20);
lcd_gotoxy(12,3); printf(lcd_putc,"%02u",eeprom_minutos_1); lcd_gotoxy(12,4); printf(lcd_putc,"--");
if(!t_ok){delay_ms(300); break;}
else if(!t_mas){i=0; delay_ms(300); eeprom_minutos_1++; if(eeprom_minutos_1>59) {eeprom_minutos_1=0;}; }
else if(!t_mns){i=0; delay_ms(300); eeprom_minutos_1--; if(eeprom_minutos_1==255){eeprom_minutos_1=59;};}
}; write_eeprom(INT_EEPROMC,eeprom_minutos_1);
for(i=0;i!=255;i++)
{
delay_ms(20);
lcd_gotoxy(15,3); printf(lcd_putc,"%02u",eeprom_segundos_1); lcd_gotoxy(12,4); printf(lcd_putc," --");
if(!t_ok){delay_ms(300); break;}
else if(!t_mas){i=0; delay_ms(300); eeprom_segundos_1++; if(eeprom_segundos_1>59) {eeprom_segundos_1=0;}; }
else if(!t_mns){i=0; delay_ms(300); eeprom_segundos_1--; if(eeprom_segundos_1==255){eeprom_segundos_1=59;};}
}; write_eeprom(INT_EEPROMD,eeprom_segundos_1);
intf=0; intf1=0; intf2=0;
enable_interrupts(GLOBAL);
enable_interrupts(INT_EXT);
enable_interrupts(INT_EXT1);
enable_interrupts(INT_EXT2);
}
////////////////////////////////////////////////////////////////////////////////
void menu_cronometro_3(void)
{
lcd_putc("\f");
lcd_gotoxy(5,1); lcd_putc("CRONOMETRO 3");
lcd_gotoxy(2,3); printf(lcd_putc,"TIEMPO 3: %02u:%02u",eeprom_minutos_2,eeprom_segundos_2);
cgram_reloj();
for(i=0;i!=255;i++)
{
delay_ms(20);
lcd_gotoxy(12,3); printf(lcd_putc,"%02u",eeprom_minutos_2); lcd_gotoxy(12,4); printf(lcd_putc,"--");
if(!t_ok){delay_ms(300); break;}
else if(!t_mas){i=0; delay_ms(300); eeprom_minutos_2++; if(eeprom_minutos_2>59) {eeprom_minutos_2=0;}; }
else if(!t_mns){i=0; delay_ms(300); eeprom_minutos_2--; if(eeprom_minutos_2==255){eeprom_minutos_2=59;};}
}; write_eeprom(INT_EEPROME,eeprom_minutos_2);
for(i=0;i!=255;i++)
{
delay_ms(20);
lcd_gotoxy(15,3); printf(lcd_putc,"%02u",eeprom_segundos_2); lcd_gotoxy(12,4); printf(lcd_putc," --");
if(!t_ok){delay_ms(300); break;}
else if(!t_mas){i=0; delay_ms(300); eeprom_segundos_2++; if(eeprom_segundos_2>59) {eeprom_segundos_2=0;}; }
else if(!t_mns){i=0; delay_ms(300); eeprom_segundos_2--; if(eeprom_segundos_2==255){eeprom_segundos_2=59;};}
}; write_eeprom(INT_EEPROMF,eeprom_segundos_2);
intf=0; intf1=0; intf2=0;
enable_interrupts(GLOBAL);
enable_interrupts(INT_EXT);
enable_interrupts(INT_EXT1);
enable_interrupts(INT_EXT2);
break;
}
void cgram_reloj(void)
{
lcd_send_byte(0,0x40);
for (k=0;k<8;k++) {lcd_send_byte(1,relojChar[k]);} lcd_gotoxy(19,3); lcd_send_byte(1,0);
}
void cgram_reloj_1(void)
{
lcd_send_byte(0,0x48);
for (k=0;k<8;k++) {lcd_send_byte(1,relojChar[k]);} lcd_gotoxy(20,2); lcd_send_byte(1,1); lcd_gotoxy(20,3); lcd_send_byte(1,1); lcd_gotoxy(20,4); lcd_send_byte(1,1);
}
void cgram_flecha(void)
{
lcd_send_byte(0,0x40);
for (k=0;k<8;k++) {lcd_send_byte(1,flechaChar[k]);} lcd_gotoxy(18,2); lcd_send_byte(1,0);
}
////////////////////////////////////////////////////////////////////////////////