Ir ao conteúdo
  • Cadastre-se

Laço for segurando botão - mikroc


Posts recomendados

Eae pessoal, estou tentando fazer um laço FOR, que quando eu segurar S1 o led vai piscar 10 vezes, mas quando eu seguro o S1 ele não para de piscar, como eu posso arrumar isso por favor???(quando aperto e solto ele funciona, mas não é isso q quero)

#define S1 PORTA.RA0
#define led PORTB.RB0

int ii = 0x00;

void main()
{
TRISA = 0xFF;
TRISB = 0x00;
PORTA = 0x00;
PORTB = 0x00;
CMCON = 0x07;

while(1)
{
 if(S1 == 1)
 {
  for(ii=; ii<10; ii++)
  {
   led = 0x01;
   delay_ms(200);
   led = 0x00;
   delay_ms(200);
   
  }
 
 }

}

}

 

Link para o comentário
Compartilhar em outros sites

Após o laço for coloque um tempo de espera(delay), para que o botão possa ser pressionado novamente.

 

Outra solução seria verificar quando o botão for solto, logo o algoritmo ficaria mais ou menos assim:

 

bool flag;

se (botao == 1)
	flag = 1

se(botao == 0 && flag == 1)
	for{...}
	flag = 0

Desta maneira a rotina seria executada ao pressionar e soltar o botão. E só funcionaria novamente após piscar as 10 vezes. (EU ACHO)

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!