×
×
Ir ao conteúdo
  • Cadastre-se

Pino analógico do pic


Posts recomendados

Eu estou fazendo um programa no mikroc para um teclado analogico, e para isso eu preciso comparar o valor recebido no pino analógico com um pré determinado, o problema é q a comparação sempre retorna verdade como resposta, no programa:

void main()

{

unsigned int teclado;

ADCON1 = 0b00000000; // Configure all PORTA as analog inputs, left justified

TRISA = 0xFF; // PORTA is input (analog)

TRISB = 0x00; // PORTB is digital output

TRISD = 0x00; // PORTC is digital output

delay_ms(3000);

do

{

teclado = Adc_Read(0);

PORTB = 0;

PORTD = 0;

do

{

PORTB.F2 = 1;

delay_ms(1000);

}

while (teclado=0b100010001);

PORTB.F2 = 0;

PORTB.F3 = 1;

} while (1);

}

o problema é q eu entro qualquer valor no simulador para o pino analogico e o programa não sai daquele laço while (teclado=0b100010001);

alguem tem alguma ideia porque isso esta acontecendo?

muito obrigado

Link para o comentário
Compartilhar em outros sites

Corrigindo seu código:


void main()
{
unsigned int teclado;
ADCON1 = 0;
TRISA = 0xFF; // PORTA is input (analog)
TRISB = 0x00; // PORTB is digital output
TRISD = 0x00; // PORTC is digital output

while( 1){
teclado = Adc_Read(0);
PORTB = 0;
PORTD = 0;
do{
PORTB.F2 = 1; //é mesmo F?
delay_ms(1000);
}

while (teclado == 0b0100010001);

PORTB.F2 = 0;
PORTB.F3 = 1;
}
}

O erro é que você tinha colocado uma situação TRUE, ou seja, teclado = 0b0100010001, e não fazendo uma comparação.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.

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

Aprenda a ler resistores e capacitores

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!