La salida del sensor TCS3200 tiene demasiada desviación

0

Tengo un TCS3200 conectado a un arduino UNO. Yo uso el temporizador para calcular el período de la onda de salida. El problema es que la salida de la función tiene demasiada desviación, por ejemplo, en una situación estable sin cambios en la luz, el color o la posición, la salida varis entre 31 y 181 cuentas de reloj. El código es:

//Sensor output 
#define TCS_OUT_DDR DDRB
#define TCS_OUT_PORT PINB
#define TCS_OUT_POS PINB1

uint32_t TCSMeasure(){
  if (!(TCS_OUT_PORT & (1<<TCS_OUT_POS))) {
    while(!(TCS_OUT_PORT & (1<<TCS_OUT_POS)));

  }

  while((TCS_OUT_PORT & (1<<TCS_OUT_POS)));
  TCNT1 = 0x0000;

  TCCR1B = (1<<CS10); //no prescale clk/1

  while(!(TCS_OUT_PORT & (1<<TCS_OUT_POS)));

  TCCR1B = 0x00; //no clock source


  return (TCNT1);
}

¿Es el estado normal de TCS3200 o hay un error en mi código?

la hoja de datos TCS3200: enlace

    
pregunta s_puria

0 respuestas

Lea otras preguntas en las etiquetas