Já faz um tempo que estou tentando fazer um codigo para utilizer com um botao, onde ele deve ter duas funções.
Tentei varias formas mas inclusive o Switch case não funiona correto ( tipo, tenho qu eapertar mais vezes do qu eo previsto no codito ) para que seja reconhecido..
Preciso que uma tecla funcione normalmente acendendo e apagando um LED ( liga e desliga )..
Se segura por 2 segundos ela acende esse LED e entra em tipo modo MEnu, ou programação.
Dependendo das quantidades que apertar ( maximo de 9 ) ela terá que acender outros leds pela mudança de valores de uma variavel..
Quase consegui fazer funcionar, mas não vai nem a pau...
Alguem pode me dar uma luz pelo menos para eu encontrar o caminho desse problema e continuar com o meu projetinho ?
Como falei, eu já tentei com o Switch Case, mas não funciona direito.. As vezes tem que apertar 3 vezes para ele pular para a linha que
só deveria ir se fosse apertado uma vez..
com esse monte de IF eu até consegui fazer alguma cois afuncionar, mesmo assim aparece uns BUGs que acendem leds errados etc...
cpp code
void main()
{
set_tris_B(0b00000000);
output_B(0b00000000);
set_tris_A(0b00010000);
while(true)
{
while(!input(botao)) //ENQUANTO SEGURO O BOTÃO
{
cont=cont+10;
delay_ms(22);
if(cont ==3000)
{
led2=~led2;
output_bit(pin_B0,led2); // LED ACESSO
prog=~prog;
delay_ms(100);
amp=0;
}
}
cont=0;
if (!input(botao)&& va3==0 &&( prog == 1 ))
{
delay_us(50);
va3++;
}
if (input(botao) && va3 == 1 )
{
delay_ms(100);
amp++;
va3=0;
}
if(amp == 1 )va1=3;
if(amp == 2 )va1=4;
if(amp == 3 )va1=5;
if(amp == 4 )va1=6;
if(amp == 5 )va1=7;
if(amp == 6 )va1=8;
if(amp == 7 )va1=9;
if(va1 == 3 ) output_bit(pin_b1,1);
if(va1 == 4 ) output_bit(pin_b2,1);
if(va1 == 5 ) output_bit(pin_b3,1);
if(va1 == 6 ) output_bit(pin_b1,0);
if(va1 == 7 ) output_bit(pin_b2,0);
if(va1 == 8 ) output_bit(pin_b3,0);
if(va1 >=9 )
{
amp=1;
}
Agradeço a ajuda..
Eloy