Kionix KX123 accelerometer C++ driver. Can be used for some extend also with kx022, kx023, kx122, etc. when used features are present in sensor.

Dependents:   kionix-kx123-hello

Revision:
0:a3f43eb92f86
Child:
1:f328083fb80b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/kx123.h	Thu Sep 29 15:05:08 2016 +0000
@@ -0,0 +1,67 @@
+/*   Copyright 2016 Rohm Semiconductor
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+*/
+#ifndef KX123_H
+#define KX123_H
+
+//#include "mbed.h"               //types
+#include "I2C.h"                //I2C
+
+#include "RegisterWriter/RegisterWriter/rohm_hal2.h"
+#include "RegisterWriter/RegisterWriter/RegisterWriter.h"
+
+
+/**
+* KX123 accelerometer driver
+*/
+class KX123
+{
+public:
+    /**
+    * Create a KX123 instance which is connected to pre-instantiated I2C object.
+    *
+    * @param sad slave address of sensor.
+    * @param wai who_am_i value (i.e. sensor type/model)
+    */
+    KX123(RegisterWriter &i2c_obj, uint8_t sad = KX123_DEFAULT_SLAVE_ADDRESS, uint8_t wai = KX123_WHO_AM_I_WAI_ID);
+
+    /**
+    * KX123 destructor
+    */
+    ~KX123();
+
+    /**
+    * Probe and setup kx123 (or other accelerometer from same family)
+    */
+    bool set_defaults(void);
+    /**
+    * Get results in raw value
+    */
+    bool getresults_raw(int16_t* buf);
+    /**
+    * Get results in 1G-values
+    */
+    bool getresults_g(float* buf);
+    
+
+private:
+    void set_tilt_position_defaults();
+    
+    RegisterWriter i2c_rw;
+    uint16_t resolution_divider;
+    uint8_t sad;
+    uint8_t wai;
+};
+
+#endif
\ No newline at end of file