MikroC - Contador



Já sei oque vocês devem estar pensando..... Oque será que ele quer dessa vez, MEU DEUS !!!! rrsssssss

Bom....
Estou fazendo aquele relóginho para meu quarto, lembra ?!?!?
Eu queria ajustar a hora da melhor forma possivel, então eu pensei, pensei, pensei e pensei, e não cheguei a conclusão nenhuma rrsssss BRINCADEIRA.
Eu criei um esquema com SWITCH e CASES, onde exibi no LCD os numeros, incrementando e decrementando,OK
Mas agora eu estou com outro problema, eu estou tentando fazer o seguinte.....
Quando eu estiver no meu da operação de ajustar a hora, quando eu apertar ( asterisco ), chame uma outra função.....
Mas dai, já tentei de varias formas, se eu fizer tecla='*' a rotina não funciona.
Vejam:
- Código: Selecionar todos
void data
unsigned char tecla;
int cont; // acumulador auxiliar
//-------------------------------
Lcd_custom_Cmd(Lcd_Clear); // Limpa o LCD 16x2 //
Lcd_custom_out(1,1,"AJUSTE DATA");
Delay_ms(20);
//-------------------------------
do {
if (porta.f0 == 0) // Se apertar tecla que esta em porta.f0
{
cont ++; incrementa
Delay_ms(200);
Lcd_custom_cmd(LCD_CLEAR);
Lcd_custom_out(1,1,"AJUSTE DATA");
Lcd_custom_out(2,3,"/");
Delay_ms(20);
Lcd_custom_out(2,7,"/");
Delay_ms(20);}
if (porta.f1 == 0) // Se apertar tecla que esta em porta.f1
{
cont --; // decrementa
Delay_ms(200);
Lcd_custom_cmd(LCD_CLEAR);
Lcd_custom_out(1,1,"AJUSTE DATA");
Lcd_custom_out(2,3,"/");
Delay_ms(20);
Lcd_custom_out(2,7,"/");
Delay_ms(20);}
switch (cont)
{
case 0 :
lcd_custom_cmd(LCD_CURSOR_OFF);
Lcd_custom_out(1,1,"AJUSTE DATA");
lcd_custom_out(2,1,"0");break;
Delay_ms(1000);
Lcd_custom_out(2,3,"/");
Delay_ms(20);
Lcd_custom_out(2,7,"/");
Delay_ms(20);
case 1 :
lcd_custom_cmd(LCD_CURSOR_OFF);
Lcd_custom_out(1,1,"AJUSTE DATA");
lcd_custom_out(2,1,"1");break;
Delay_ms(10);
Lcd_custom_out(2,3,"/");
Delay_ms(20);
Lcd_custom_out(2,7,"/");
Delay_ms(20);
case 2 :
lcd_custom_cmd(LCD_CURSOR_OFF);
Lcd_custom_out(1,1,"AJUSTE DATA");
lcd_custom_out(2,1,"2");break;
Delay_ms(10);
Lcd_custom_out(2,3,"/");
Delay_ms(20);
Lcd_custom_out(2,7,"/");
Delay_ms(20);
case 3 :
lcd_custom_cmd(LCD_CURSOR_OFF);
Lcd_custom_out(1,1,"AJUSTE DATA");
lcd_custom_out(2,1,"3");break;
Delay_ms(10);
Lcd_custom_out(2,3,"/");
Delay_ms(20);
Lcd_custom_out(2,7,"/");
Delay_ms(20);
case 4 :
lcd_custom_cmd(LCD_CURSOR_OFF);
Lcd_custom_out(1,1,"AJUSTE DATA");
lcd_custom_out(2,1,"4");break;
Delay_ms(10);
Lcd_custom_out(2,3,"/");
Delay_ms(20);
Lcd_custom_out(2,7,"/");
Delay_ms(20);
case 5 :
lcd_custom_cmd(LCD_CURSOR_OFF);
Lcd_custom_out(1,1,"AJUSTE DATA");
lcd_custom_out(2,1,"5");break;
Delay_ms(10);
Lcd_custom_out(2,3,"/");
Delay_ms(20);
Lcd_custom_out(2,7,"/");
Delay_ms(20);
case 6 :
lcd_custom_cmd(LCD_CURSOR_OFF);
Lcd_custom_out(1,1,"AJUSTE DATA");
lcd_custom_out(2,1,"6");break;
Delay_ms(10);
Lcd_custom_out(2,3,"/");
Delay_ms(20);
Lcd_custom_out(2,7,"/");
Delay_ms(20);
case 7 :
lcd_custom_cmd(LCD_CURSOR_OFF);
Lcd_custom_out(1,1,"AJUSTE DATA");
lcd_custom_out(2,1,"7");break;
Delay_ms(10);
Lcd_custom_out(2,3,"/");
Delay_ms(20);
Lcd_custom_out(2,7,"/");
Delay_ms(20);
case 8 :
lcd_custom_cmd(LCD_CURSOR_OFF);
Lcd_custom_out(1,1,"AJUSTE DATA");
lcd_custom_out(2,1,"8");break;
Delay_ms(10);
Lcd_custom_out(2,3,"/");
Delay_ms(20);
Lcd_custom_out(2,7,"/");
Delay_ms(20);
case 9 :
lcd_custom_cmd(LCD_CURSOR_OFF);
Lcd_custom_out(1,1,"AJUSTE DATA");
lcd_custom_out(2,1,"9");break;
Delay_ms(10);
Lcd_custom_out(2,3,"/");
Delay_ms(20);
Lcd_custom_out(2,7,"/");
Delay_ms(20);
case 10 :
lcd_custom_cmd(LCD_CURSOR_OFF);
Lcd_custom_out(1,1,"AJUSTE DATA");
lcd_custom_out(2,1,"10");break;
Delay_ms(10);
Lcd_custom_out(2,3,"/");
Delay_ms(20);
Lcd_custom_out(2,7,"/");
Delay_ms(20);
}
}while(1);
}
Abraço a todos, e desejo a participação de todos