Hola a todos.
Espero y me puedan ayudar con un tema básico en ADC con el pic 16f877a, se que es básico pero no tengo los suficientes conocimientos.
Estoy haciendo un programa, este debe leer 3 entradas analógicas en el puerto A; y prender un pin especifico en el puerto B
Y debo comparar las 3 entradas analógicas, a fin de hacer una acción según el valor menor.
No logro ver mi error, compila, pero en el simulador no responde a nada.
Espero me puedan ayudar, muchas gracias!
#include <16F877A.h>
#device adc=10
#FUSES XT, NOWDT, NOPROTECT, PUT
#use delay (clock=4000000)
#BYTE TRISA=0X85
#BYTE PORTA=0X05
#BYTE PORTB=0X06
void main()
{
setup_adc_ports(ALL_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);
set_tris_b(0x00);
while(1);
{
int16 x;
int16 y;
int16 z;
set_adc_channel(0);
x=read_adc();
delay_ms(100);
set_adc_channel(1);
delay_ms(100);
y=read_adc();
delay_ms(100);
set_adc_channel(3);
z=read_adc();
delay_ms(100);
if (x<y && x<z)
{
PORTB=0b11111111;
}
else
{
if (y<x && y<z)
{
PORTB=0b01010101;
}
else
{
if(z<x && z<y)
{
PORTB=0b00000000;
}
}
}
delay_ms(100);
}
}