Advertisement
tmax

MMA7660

May 14th, 2015
319
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.60 KB | None | 0 0
  1. VOID LEER_EJE (INT n){        //lee los 3 ejes del acelerómetro
  2.  
  3.     i2c_start();                  //inicio transmicion I2C                                    
  4.     i2c_write(I2C_ESCRIBIR);      //envío la dirección de esclavo con el bit de escritura W
  5.     i2c_write(EJEX);              //envío el eje a leer
  6.     i2c_start();                  //condición repetida de start
  7.     i2c_write(I2C_LEER);          //envío la dirección del esclavo con el bit de lectura R
  8.         // Leemos el byte de cada eje
  9.     EJE_X = i2c_read(1);          //leo primer eje, devuelvo ACK
  10.     EJE_Y = i2c_read(1);          //leo segundo eje, devuelvo ACK
  11.     EJE_Z = i2c_read(0);          //leo tercer eje, no devuelvo ACK (NAK) para indicar que es el ultimo eje que leo
  12.     //Nota: no envio a cada rato el nuevo eje que quiero leer porque el acelerómetro
  13.     //autoincrementa la dirección cada vez que se lee
  14.     i2c_stop();                   //finalizo transmición
  15. }
  16.  
  17. // Como configurar el MMA7660
  18. //Configuración del acelerómetro
  19. mma7660_mode(0b00000000);  //acelerometro en stand-by para la escritura de los registros
  20. mma7660_spcnt(0b00000000); //sin sleep-count
  21. mma7660_intsu(0b00000000); //sin interrupciones de ningún tipo
  22. mma7660_pdet(0b11100000);  //sin tap-detection
  23. mma7660_sr(0b00010100);    //32 muestras por segundo, sin TILT debounce filter
  24. mma7660_pd(0b00000000);    //No tap detection debounce count enabled
  25. mma7660_srst(0b00000001);  //sample rate especificado en AMSRS
  26. mma7660_mode(0b11000001);  //acelerometro activo, interrupcion activa = 0
  27. delay_ms(30);              //tiempo que demora el acelerometro para pasar de modo sleep a activo
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement