Library for MMA7660FC Accelerometer device
Dependents: TestCode_MMA7660FC 3D_Accelerometer_Tester RTOS-aap-board-modules embed_Grove_3-Axis_Digital_Accelerometer ... more
Diff: MMA7660FC.cpp
- Revision:
- 6:10aa804dee97
- Parent:
- 5:d2f90c0be13f
- Child:
- 7:74eb2a4803ba
--- a/MMA7660FC.cpp Thu Jul 05 17:47:12 2012 +0000 +++ b/MMA7660FC.cpp Sun Sep 23 10:58:35 2012 +0000 @@ -41,7 +41,8 @@ // Connect module at I2C address addr using I2C port pins sda and scl MMA7660FC::MMA7660FC(PinName sda, PinName scl, int addr) : m_i2c(sda, scl), m_addr(addr) { - + SPI_W_Address = m_addr; // Write address + SPI_R_Address = SPI_W_Address | 1; // Read address } @@ -70,8 +71,8 @@ const char Addr_X = OUT_X; char buf[3] = {0,0,0}; - m_i2c.write(m_addr, &Addr_X, 1); // Pointer to the OUT_X register - m_i2c.read(m_addr, buf, 3); // Read register content into buffer with 6bit + m_i2c.write(SPI_W_Address, &Addr_X, 1); // Pointer to the OUT_X register + m_i2c.read(SPI_W_Address, buf, 3); // Read register content into buffer with 6bit // returns the x, y, z coordinates transformed into full degrees *x = TILT_XY[(int)buf[0]]; @@ -86,10 +87,10 @@ { m_i2c.start(); // Start - m_i2c.write(0x98); // A write to device 0x98 + m_i2c.write(SPI_W_Address); // A write to device m_i2c.write(OUT_X); // Register to read m_i2c.start(); - m_i2c.write(0x99); // Read from device 0x99 + m_i2c.write(SPI_R_Address); // Read from device char x = m_i2c.read(0); // Read the data m_i2c.stop(); @@ -103,10 +104,10 @@ { m_i2c.start(); // Start - m_i2c.write(0x98); // A write to device 0x98 + m_i2c.write(SPI_W_Address); // A write to device m_i2c.write(OUT_Y); // Register to read m_i2c.start(); - m_i2c.write(0x99); // Read from device 0x99 + m_i2c.write(SPI_R_Address); // Read from device char y = m_i2c.read(0); // Read the data m_i2c.stop(); @@ -120,10 +121,10 @@ { m_i2c.start(); // Start - m_i2c.write(0x98); // A write to device 0x98 + m_i2c.write(SPI_W_Address); // A write to device m_i2c.write(OUT_Z); // Register to read m_i2c.start(); - m_i2c.write(0x99); // Read from device 0x99 + m_i2c.write(SPI_R_Address); // Read from device char z = m_i2c.read(0); // Read the data m_i2c.stop(); @@ -137,10 +138,10 @@ { m_i2c.start(); // Start - m_i2c.write(0x98); // A write to device 0x98 + m_i2c.write(SPI_W_Address); // A write to device m_i2c.write(addr); // Register to read m_i2c.start(); - m_i2c.write(0x99); // Read from device 0x99 + m_i2c.write(SPI_R_Address); // Read from device char c = m_i2c.read(0); // Read the data m_i2c.stop(); @@ -156,15 +157,15 @@ char cmd[2] = {0, 0}; cmd[0] = MODE_STATUS; - cmd[1] = 0x00; // Standby Mode on - m_i2c.write(m_addr, cmd, 2); + cmd[1] = 0x00; // Standby Mode on + m_i2c.write(SPI_W_Address, cmd, 2); cmd[0] = addr; - cmd[1] = data; // New value of the register - m_i2c.write(m_addr, cmd, 2); + cmd[1] = data; // New value of the register + m_i2c.write(SPI_W_Address, cmd, 2); cmd[0] = MODE_STATUS; - cmd[1] = 0x01; // Active Mode on - m_i2c.write(m_addr, cmd, 2); + cmd[1] = 0x01; // Active Mode on + m_i2c.write(SPI_W_Address, cmd, 2); }