Ir ao conteúdo
  • Cadastre-se

Rotina com if,else


Ir à solução Resolvido por joseca,

Posts recomendados

Por que não funciona essa rotina?

#include <16f877a.h>

#fuses HS,NOWDT,NOPROTECT,NOLVP

#use delay (clock=20000000)

void main(){

int input;

while(true){

if((input(pin_a0))==1)

output_high(pin_b0);

else

output_low(pin_b0);

}

{

if((input(pin_a1))==1)

output_high(pin_b1);

else

output_low(pin_b1);

}

{

if((input(pin_a2))==1)

output_high(pin_b2);

else

output_low(pin_b2);

}

}

o esquema

pic16f877.bmp

Link para o comentário
Compartilhar em outros sites

configurei os TRISA e TRISB,mas não adiantou

#include <16f877a.h>

#fuses HS,NOWDT,NOPROTECT,NOLVP

#use delay (clock=20000000)

void main(){

int input;

set_tris_a(0b11111111);

set_tris_b(0b00000000);

while(true){

if((input(pin_a0))==1)

output_high(pin_b0);

else

output_low(pin_b0);

}

{

if((input(pin_a1))==1)

output_high(pin_b1);

else

output_low(pin_b1);

}

{

if((input(pin_a2))==1)

output_high(pin_b2);

else

output_low(pin_b2);

}

}

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

então acho que era isso desde o começo. sexta super abre nossa mente. e você deveria ter  especificado isso no tal de "não funciona"!

o loop está fechado aqui

while(true){ //<<<<
if((input(pin_a0))==1)
output_high(pin_b0);
else
output_low(pin_b0);
}  //<<<<

a parte de baixo nunca vai ocorrer

{
if((input(pin_a1))==1)
output_high(pin_b1);
else
output_low(pin_b1);
}

o compilador deve ter avisado. bom...deveria

e de novo... de nada!

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Solução

tirei o while(true)

tirei as chaves para sair desse loop,deixei somente as duas

mas não roda a parte debaixo,o que esta ocorrendo?

Obrigado pelos retornos

Resolvido o problema,eram as chaves mesmo,veja como ficou

#include <16f877a.h>

#fuses HS,NOWDT,NOPROTECT,NOLVP

#use delay (clock=20000000)

void main(){

while(true){

if((input(pin_a0))==1)

output_high(pin_b0);

else

output_low(pin_b0);

if((input(pin_a1))==1)

output_high(pin_b1);

else

output_low(pin_b1);

if((input(pin_a2))==1)

output_high(pin_b2);

else

output_low(pin_b2);

}

}

Obrigado Isadora pelas dicas,codigo rodando muito bem!

Moderador poder fechar o topico

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...