Forked MMA7660 , extend implementation by using i2c asynch API, to sleep while waiting for transfer -> blocking asynch :-D

Fork of MMA7660 by Erik -

Revision:
5:556829f081f6
Parent:
2:a8e20db7901e
--- a/MMA7660.h	Tue May 13 18:14:34 2014 +0000
+++ b/MMA7660.h	Tue May 05 07:23:40 2015 +0000
@@ -83,8 +83,9 @@
     * @param sda - I2C data pin
     * @param scl - I2C clock pin
     * @param active - true (default) to enable the device, false to keep it standby
+    * @param asynch - use asynch i2c - the API is blocking which does not break the current app
     */
-    MMA7660(PinName sda, PinName scl, bool active = true);
+    MMA7660(PinName sda, PinName scl, bool active = true, bool asynch = false);
 
     /**
     * Tests if communication is possible with the MMA7660
@@ -168,6 +169,8 @@
 
 private:
 
+    void callback(int event);
+
     /**
     * Writes data to the device
     *
@@ -201,6 +204,9 @@
     I2C _i2c;
     bool active;
     float samplerate;
+    volatile bool callback_done;
+    event_callback_t event;
+    const bool asynch;
 };