Library for MMA7660FC Accelerometer device

Dependents:   TestCode_MMA7660FC 3D_Accelerometer_Tester RTOS-aap-board-modules embed_Grove_3-Axis_Digital_Accelerometer ... more

Revision:
3:df25c72e16be
Parent:
0:eb135a8de811
Child:
4:6e931d9bbf4b
--- a/MMA7660FC.cpp	Sun Jul 01 09:50:18 2012 +0000
+++ b/MMA7660FC.cpp	Tue Jul 03 18:37:19 2012 +0000
@@ -76,6 +76,57 @@
 }
 
 
+      // Reads x data
+float MMA7660FC::read_x()
+{
+
+    m_i2c.start();                  // Start
+    m_i2c.write(0x98);              // A write to device 0x98
+    m_i2c.write(OUT_X);             // Register to read
+    m_i2c.start();                  
+    m_i2c.write(0x99);              // Read from device 0x99
+    char x = m_i2c.read(0);         // Read the data
+    m_i2c.stop();
+    
+    return (float)x;  
+
+}
+
+
+      // Reads y data
+float MMA7660FC::read_y()
+{
+
+    m_i2c.start();                  // Start
+    m_i2c.write(0x98);              // A write to device 0x98
+    m_i2c.write(OUT_Y);             // Register to read
+    m_i2c.start();                  
+    m_i2c.write(0x99);              // Read from device 0x99
+    char y = m_i2c.read(0);         // Read the data
+    m_i2c.stop();
+    
+    return (float)y; 
+
+}
+
+
+      // Reads z data
+float MMA7660FC::read_z()
+{
+
+    m_i2c.start();                  // Start
+    m_i2c.write(0x98);              // A write to device 0x98
+    m_i2c.write(OUT_Z);             // Register to read
+    m_i2c.start();                  
+    m_i2c.write(0x99);              // Read from device 0x99
+    char z = m_i2c.read(0);         // Read the data
+    m_i2c.stop();
+    
+    return (float)z;
+
+}
+
+
         // Read from specified MMA7660FC register
 char MMA7660FC::read_reg(char addr)
 {
@@ -83,10 +134,10 @@
     m_i2c.start();                  // Start
     m_i2c.write(0x98);              // A write to device 0x98
     m_i2c.write(addr);              // Register to read
-    m_i2c.start();                  // Need to send start condition here
+    m_i2c.start();                  
     m_i2c.write(0x99);              // Read from device 0x99
     char c = m_i2c.read(0);         // Read the data
-    m_i2c.stop();                   // Stop
+    m_i2c.stop();                   
  
     return c;