Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida com condição if - else if.


rensferreira

Pergunta

Colegas ajuda ao novato aqui.

Este programa é para ajuste de um timer para microcontrolador PIC, feito no MikroC.

Como faço para que a condição else if seja executada quando o i se torna >= 4. Já tentei de várias maneiras, mas sempre que a condição i >= 4 ocorre, o programa não entra no else if.

A variável PiscaUmSeg é um bit que como o nome diz pisca a cada um segundo e vai a um através da interrupção do TIMER0.

A Idéia é fazer o ajuste do temporizador da seguinte forma:

O timer possui um botão para incrementar e outro para decrementar o ajuste do tempo. O decremento não está neste trecho de código. Se o botão for mantido pressionado os minutos são incrementados a cada segundo até 4 segundos. Se o botão continuar pressionado, os minutos são incrementados s cada 1/2 segundo.  Simples... mas não consigo fazer o else if ser executado quando o i >= 4. O IncrementaMeioSeg também é controlado pelo TIMER0. O que acontece é que quando o i se torna = 4, o programa nem avalia o else if, já pula direto.

Quem puder ajudar agradeço.

 

if (up)
          {
            if (i < 4)
                if (PiscaUmSeg)
                  {
                    minutos++;
                    PiscaUmSeg = 0;
                    cnt = 0;
                    i++;
                  }
            else if (i >= 4)
                if (IncrementaMeioSeg)
                  {
                    minutos++;
                    IncrementaMeioSeg = 0;
                    cnt2 = 0;
                    i++;
                  }
          }

 

Editado por rensferreira
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
if ( up ) {
    if ( i < 4 ) {
        if ( PiscaUmSeg ) {
            minutos++;
            PiscaUmSeg = 0;
            cnt = 0;
            i++;
        }
    } else if ( i >= 4 ) {
        if ( IncrementaMeioSeg ) {
            minutos++;
            IncrementaMeioSeg = 0;
            cnt2 = 0;
            i++;
        }
    }
}

Prove por as chaves que encerram os blocks do código. Se puder mandar o código completo melhor.




 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...