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++;
}
}
Pergunta
rensferreira
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++; } }
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
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.