MikroC - Contador

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

MikroC - Contador

Mensagempor gilliard » 13 Jan 2010 11:12

:lol: Falae Rapaziada :lol:

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

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
Avatar do usuário
gilliard
Byte
 
Mensagens: 121
Registrado em: 26 Ago 2008 13:32

Mensagempor Sergio38br » 13 Jan 2010 12:15

Código: Selecionar todos
 
   ='*' ou =='*' //?? Ó duvida!!!


[ ]'s
Sergio
Avatar do usuário
Sergio38br
Word
 
Mensagens: 759
Registrado em: 22 Nov 2007 13:39
Localização: São Paulo - SP

Mensagempor gilliard » 13 Jan 2010 13:38

Bom que eu saiba, a diferença é a seguinte:

='*' - É igual a '*'

=='*' Se for igual a '*'

Quais as sugestões pessoais !!!! Para eu experimentar aqui, para tentar solucionar meu problema ?!?!?
Avatar do usuário
gilliard
Byte
 
Mensagens: 121
Registrado em: 26 Ago 2008 13:32

Mensagempor rudsomlima » 13 Jan 2010 14:23

Faz o seguinte: se pressionado os dois botões de uma vez só, chama a função que vc quer.
No seu caso: if(!porta.f0 & !porta.f1) chama_funcao();
rudsomlima
Bit
 
Mensagens: 37
Registrado em: 26 Nov 2006 21:00

Mensagempor Sergio38br » 13 Jan 2010 14:30

Entao qual tu usaste na função?? se um atribui valor ( = ) e outro é utilizado em comparação ( == )??

[ ]'s
Sergio
Avatar do usuário
Sergio38br
Word
 
Mensagens: 759
Registrado em: 22 Nov 2007 13:39
Localização: São Paulo - SP

Mensagempor gilliard » 13 Jan 2010 17:20

Eu queria mesmo, substituir as teclas do porta.f0 e porta.f1 por tecla=='1' e tecla=='2'. Mas não esta funcionando, dai eu conseguiria, usar o tecla=='*' para chamar outra subrotina teste();

Será que tem como fazer isso ?!?!?

Estou chamando a subrotina, utilizando a tecla=='*', dessa forma.

E queria juntar a rotina abaixo, com a rotina dos switch e cases, que passei lá em cima, dai quando eu apertar o asterisco, chamaria a subrotina teste().

Código: Selecionar todos
do {
                    tecla=0;// limpa o valor atual do teclado

                while (tecla==0) tecla=teclado(); // Aguarda algo ser digitado
               
                if(tecla=='*'){ // Se for digitado *

                teste();        // Chama a subrotina teste()

                }
               
                    } while(1); // Faz isso eternamente


OBS: Pessoal, eu não quero de mão beijada, eu quero receber as sugestões, dai vou implementando aqui, dai eu posto o resultado.

Mas estou muito feliz, com as ajudas que estou recebendo.

Agradeço a todos !!!!
Avatar do usuário
gilliard
Byte
 
Mensagens: 121
Registrado em: 26 Ago 2008 13:32

Mensagempor gilliard » 13 Jan 2010 19:42

:D Me ajudem pessoal !!!! :D
Avatar do usuário
gilliard
Byte
 
Mensagens: 121
Registrado em: 26 Ago 2008 13:32

Mensagempor ze » 13 Jan 2010 20:17

tudo vai depender de como está o seu teclado e da sua teclado()
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Mensagempor gilliard » 14 Jan 2010 09:55

Falae Rapaziada !!!!

Já resolvi o problema aqui, valew !!!!
Avatar do usuário
gilliard
Byte
 
Mensagens: 121
Registrado em: 26 Ago 2008 13:32

Mensagempor fabim » 14 Jan 2010 10:17

num guento isso. kkkkkkkkkkkkkkkkkkkk


Vamo lá.

O QUE ERA.?
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Google [Bot] e 1 visitante

cron

x