fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Avisos
Vaciar todo

Brujula CMPS03

10 Respuestas
5 Usuarios
0 Reactions
4,600 Visitas
boops
Respuestas: 1813
Topic starter
(@boops)
Ardero
Registrado: hace 19 años

Bueno, hace tiempo que tengo una de estas brujulas y me encuentro con un problema, no consigo que lea nada de forma estable. Si uso la salida PWM funciona estupendamente pero en cuanto uso el bus I2C empiezo a leer valores cambiantes. He probado diferentes valores de pulls ups, delays entre los comandos, cambio de comandos. Incluso leyendo el registro 0x0C (deberia ser siempre 0), me lee 0 solo en el 50% de la veces.

¿Alguna idea?

Responder
9 respuestas
boops
Respuestas: 1813
Topic starter
(@boops)
Ardero
Registrado: hace 19 años

#use i2c(master, slow, sda=PIN_C1, scl=PIN_C2) //Configuramos el bus I2C
while(1)
{
i2c_start(); //condición de inicio
delay_ms(5);
i2c_write(0xC0); //escribimos la dirección del dispositivo
delay_ms(5);
i2c_write(0x0C); //escribimos la dirección del registro
delay_ms(5);
i2c_start();
delay_ms(5);
i2c_write(0xC1); //escribimos la dirección del dispositivo
delay_ms(5);
x = i2c_read(); //leemos la orientación
delay_ms(5);
i2c_stop();
lcd_gotoxy(1,2);
lcd_putc(convertir(x,2));
lcd_putc(convertir(x,1));
lcd_putc(convertir(x,0));
lcd_putc(" ");
lcd_putc(" ");
lcd_putc(convertir(cuenta,2));
lcd_putc(convertir(cuenta,1));
lcd_putc(convertir(cuenta,0));
cuenta++;
delay_ms(500);
}

Ahora mismo para los valores pares de cuenta obtengo 0 y para los impares... ahora mismo 67.

Responder
Lorth
Respuestas: 188
(@lorth)
Estimable Member
Registrado: hace 17 años

No me he leido el datasheet, y ahora no recuerdo al 100% del I2c, pero creo, repito, no lo recuerdo del todo que desde julio no toco i2c, que una vez le hacias la peticion al sensor, tenias que hacerle un i2c_stop(), para luego volver hacer un i2c_start(); Mira a ver si es eso.

¿Has podido mirar con el osciloscopio lo que tienes en el bus?

Responder
boops
Respuestas: 1813
Topic starter
(@boops)
Ardero
Registrado: hace 19 años

Lorth, Soy de los desafortunados que no tengo osciloscopio en casa así que me toca esperar al 22 de septiembre.

He probado a hacer stop-start pero segun el compilador y el datasheet es solo start para hacer un re-start.

Responder
Lorth
Respuestas: 188
(@lorth)
Estimable Member
Registrado: hace 17 años

Como yo, a gorronear de la uni, xd

Tonces nose.

Responder
Página 1 / 2
Compartir: