Quiero leer la entrada analógica AN4 (RA4) en el pin 3 de un 16f88 pero me es imposible.
Intento leer cada 4 segundos la entrada y compararla con la anterior. En cada lectura, enciendo o apago un led (DiodoLed2) para saber qué lectura está haciendo y meter así un voltaje u otro. Si la primera lectura es mayor que la segunda enciendo DiodoLed1, y si no, lo apago.
Pues no hay manera de que me lea por la entrada analógica.
Alguien me puede echar una mano?
Gracias.
El código es el siguiente:
#include <16f88.h>
#fuses INTRC_IO,NOWDT,NOPUT,NOMCLR,NOBROWNOUT,NOLVP,NOCPD,WRT,NODEBUG,NOPROTECT//,CCPB0
#device adc=8 // Usa resolución de 8 bits
#use delay(clock=4000000)
#BYTE PA = 0x05
#BYTE PB = 0x06
#BIT DiodoLed1 = PB.0
#BIT DiodoLed2 = PB.1
void main (void)
{
set_tris_a(0b00001000);// Entrada analogica AN4 en RA4
set_tris_b(0b00000000);// Diodos led en RB0 y RB1
setup_oscillator(OSC_4MHZ);
setup_adc (adc_clock_div_32); //Enciende ADC
setup_adc_ports (sAN4 | VSS_VDD);
set_adc_channel (4);
delay_us(20);
while (1)
{
Lectura1=read_adc ();
DiodoLed2=1;
delay_ms(1000);delay_ms(1000);delay_ms(1000);delay_ms(1000);
Lectura2=read_adc ();
DiodoLed2=0;
delay_ms(1000);delay_ms(1000);delay_ms(1000);delay_ms(1000);
if (Lectura1 >= Lectura2)
{
DiodoLed1=1;
}
else
{
DiodoLed1=0;
}
}
}