ayuda del fotoresistor PIC

0

Tengo un PIC16F1829 y no puedo hacer que el fotoresistor y el LED hagan nada. Estoy tratando de usar RA0 para la entrada y RC0 para la salida. ¿Qué estoy haciendo mal?

Mi código:

void ADC_Init()
{
   ADCON0 = 0x01;               //Select channel AN0
   ADCON1 = 0xF0;               //Right justify, Frc clock
}

unsigned int ADC_Read(unsigned char channel)
{
    if(channel > 7)              //Channel range is 0 ~ 7
    return 0;

    ADCON0 &= 0xC5;              //Clearing channel selection bits
    ADCON0 |= channel<<3;        //Setting channel selection bits 
   __delay_ms(2);               //Acquisition time to charge hold capacitor
   ADGO = 1;                //Initializes A/D conversion
   while(ADGO);             //Waiting for conversion to complete
   return ((ADRESH<<8)+ADRESL); //Return result      
}

void main()
{
   unsigned int photo;
   int light;
   TRISA = 0;
   ANSELA = 0;
   TRISC = 0;

   ADC_Init();                   //Initialize ADC

   while(1)
   {
      photo = ADC_Read(0);  
      light = 100 - photo/10.24;
      if (light >= 80)
      {
          RC5 = 0;
      }
      else
      {
          RC5 = 1;
      }
   }
 }

La prueba RC5 funciona haciendo el siguiente ciclo:

 for (j=0; j<0x10; j++) 
 {
   RC5 = 1;
   for (i=0; i< 0x3FF; i++) continue ;
   RC5 = 0;
   for (i=0; i< 0x3FF; i++) continue ;
 }

Fuentes que estoy usando: enlace enlace

Notas: Mi fotoresistor funciona cuando está conectado al VSS y al LED y el LED está alimentado por mi placa. El LED está encendido y cuando toco el fotorresistor, el LED se apaga. Parece que no puedo hacer nada de esto con la codificación C.

    
pregunta markerpower

0 respuestas

Lea otras preguntas en las etiquetas