Buen día a todos!!
Necesito su ayuda, estoy trabajando con el acelerometro LSM303D, lo adquirí de Pololu.
Estoy trabajando en el sensor con comunicación I2C, ya puedo escribir en los datos y leer el registro, y la lectura es la correcta.
Mi problema aquí es que cuando mando leer los salidas de las señales de aceleración (x, y, z) el dato no se actualiza, solo lo muestra una vez, y si yo giro el sensor no me regresa mas datos, esto lo tengo en un ciclo while
while (TRUE)
{
if(usb_enumerated()) //Si el PicUSB está configurado
{
if (usb_kbhit(1)) //Si el endpoint de salida contiene datos del host
{
LED_ON(LEDP);
delay_ms(500);
i2c_start();
i2c_write(0x3A); //address + W
i2c_write(0x28); //dirección del registro X parte baja
i2c_start();
i2c_write(0x3B); //address + R
DATA1=i2c_read(0);
i2c_stop();
delay_us(5);
i2c_start();
i2c_write(0x3A); //address + W
i2c_write(0x29); //dirección del registro X parte alta
i2c_start();
i2c_write(0x3B); //address + R
DATA2=i2c_read(0);
i2c_stop();
data7=count;
usb_put_packet(1,envia,8,USB_DTS_TOGGLE); //enviamos el paquete de tamaño 1byte del EP1 al PC
//usb_get_packet(1, recibe, 2); //Cachamos el paquete de tamaño 2bytes del EP1 y almacenamos en recibe
LED_OFF(LEDP); //Apagamos led Verde
delay_ms(500);
count++;
}
}
}//While
No se que registro necesite habilitar para que los datos sean continuos.