Autor Tema: Código sencillo. No lee entrada analógica. Alguien sabe pq?  (Leído 1908 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado JonGoten

  • PIC10
  • *
  • Mensajes: 21
Código sencillo. No lee entrada analógica. Alguien sabe pq?
« en: 04 de Enero de 2005, 20:38:00 »
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;
      }
   }
}

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
RE: Código sencillo. No lee entrada analógica. Alguien sabe pq?
« Respuesta #1 en: 05 de Enero de 2005, 01:13:00 »
En un programa que yo utilizo, la activación de la entrada analógica la hago de otra manera, aunque no sé decirte si como tú lo haces es o no correcto.
Así lo hago yo:

   setup_port_a( ALL_ANALOG );
   setup_adc( ADC_CLOCK_INTERNAL );
   set_adc_channel( 0 );

Desconectado JonGoten

  • PIC10
  • *
  • Mensajes: 21
RE: Código sencillo. No lee entrada analógica. Alguien sabe pq?
« Respuesta #2 en: 10 de Enero de 2005, 02:28:00 »
Lo que pasa es que yo necesito que no todas las entradas sean analógicas. La única patilla que tengo libre para que pueda ser analógica es la RA4.

Desconectado Falconhunter

  • PIC12
  • **
  • Mensajes: 60
RE: Código sencillo. No lee entrada analógica. Alguien sabe pq?
« Respuesta #3 en: 10 de Enero de 2005, 16:40:00 »
No estoy muy seguro ahora, pero creo que la patilla RA4 era un poco especial en cuanto a hardware, no? Yo estoy utilizando la RA0 y no tengo problemas.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
RE: Código sencillo. No lee entrada analógica. Alguien sabe pq?
« Respuesta #4 en: 11 de Enero de 2005, 04:30:00 »
Según tengo entendido, la patilla RA4 es "especial" sólo cuando se configura como salida, siendo obligatorio conectarle una resistencia de Pull-Up, pero no cuando se está usando como entrada.


 

anything