Sample program on how to use the LIS2MDL sensor on the RAKWirelss iTracker module

Dependencies:   LIS2MDL

Revision:
1:4a8ff3cf48ab
Parent:
0:10c0e81df4ba
--- a/LIS2MDL/LIS2MDL.h	Mon Feb 12 04:58:22 2018 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +0,0 @@
-/* 
-    Created by Naresh Krishnamoorthy
-  
-  The LIS2MDL is a low power magnetometer, here used as 3 DoF solution.
-  Library may be used freely and without limit with attribution.
-*/
-
-#ifndef LIS2MDL_h
-#define LIS2MDL_h
-
-#include "mbed.h"
-
-//*********************************
-//Register map for LIS2MDL'
-// http://www.st.com/content/ccc/resource/technical/document/datasheet/group3/29/13/d1/e0/9a/4d/4f/30/DM00395193/files/DM00395193.pdf/jcr:content/translations/en.DM00395193.pdf
-//*********************************
-#define LIS2MDL_OFFSET_X_REG_L        0x45
-#define LIS2MDL_OFFSET_X_REG_L        0x46
-#define LIS2MDL_OFFSET_X_REG_L        0x47
-#define LIS2MDL_OFFSET_X_REG_L        0x48
-#define LIS2MDL_OFFSET_X_REG_L        0x49
-#define LIS2MDL_OFFSET_X_REG_L        0x4A
-#define LIS2MDL_WHO_AM_I              0x4F
-#define LIS2MDL_CFG_REG_A             0x60
-#define LIS2MDL_CFG_REG_B             0x61
-#define LIS2MDL_CFG_REG_C             0x62
-#define LIS2MDL_INT_CTRL_REG          0x63
-#define LIS2MDL_INT_SOURCE_REG        0x64
-#define LIS2MDL_INT_THS_L_REG         0x65
-#define LIS2MDL_INT_THS_H_REG         0x66
-#define LIS2MDL_STATUS_REG            0x67
-#define LIS2MDL_OUTX_L_REG            0x68
-#define LIS2MDL_OUTX_H_REG            0x69
-#define LIS2MDL_OUTY_L_REG            0x6A
-#define LIS2MDL_OUTY_H_REG            0x6B
-#define LIS2MDL_OUTZ_L_REG            0x6C
-#define LIS2MDL_OUTZ_H_REG            0x6D
-#define LIS2MDL_TEMP_OUT_L_REG        0x6E
-#define LIS2MDL_TEMP_OUT_H_REG        0x6F
-
-#define LIS2MDL_ADDRESS               (0x1E << 1)
-
-//******************************
-// MODR legal values
-//******************************
-#define MODR_10Hz   0x00
-#define MODR_20Hz   0x01
-#define MODR_50Hz   0x02
-#define MODR_100Hz  0x03
-
-/** LIS2MDL class.
- *  Used for interfacing with the LIS2MDL sensor on board the itracker
- */
-class LIS2MDL
-{
-public:
-    /**Public constructor
-     * @param p_i2c Mbed I2C class object
-     * @param addr Address of the I2C object  
-     *  
-    */
-    LIS2MDL(I2C& p_i2c, uint8_t addr);
-    
-    /** init function to set the sensors initialisation parameters
-    *  @param  MODR See the MODR legal values in the defines in LIS2MDL.h
-    *
-    */
-    void init(uint8_t MODR);
-    
-    /** Function to get the CHIP ID
-    *
-    *  @return uin8_t returns the chip id. In this can 64
-    *  see  http://www.st.com/content/ccc/resource/technical/document/datasheet/group3/29/13/d1/e0/9a/4d/4f/30/DM00395193/files/DM00395193.pdf/jcr:content/translations/en.DM00395193.pdf
-    */
-    uint8_t getChipID();
-    
-    /** Read the raw sensor data
-    *   @params destination pointer to the array that will store the results
-    *   see http://www.st.com/content/ccc/resource/technical/document/datasheet/group3/29/13/d1/e0/9a/4d/4f/30/DM00395193/files/DM00395193.pdf/jcr:content/translations/en.DM00395193.pdf
-    */
-    void readData(int16_t * destination);
-    
-    /** Function to get the status register value
-    *   
-    *   @return uint8_t value of the status register
-    *   see http://www.st.com/content/ccc/resource/technical/document/datasheet/group3/29/13/d1/e0/9a/4d/4f/30/DM00395193/files/DM00395193.pdf/jcr:content/translations/en.DM00395193.pdf
-    */
-    uint8_t status();
-    
-    /** Function to reset the LIS2MDL sensor
-    */
-    void reset();
-    
-    /** Function to generate the offset bias stored in the chip as part of the calib 
-    *   @param dest1 Magnetic Bias offset of the sensor
-    *   @param dest2 Magnetic Scale offset of the sensor    
-    */
-    void offsetBias(float * dest1, float * dest2);
-    
-    /** Function to read the temperature of the internal tempo sensor
-    *
-    *   @return uint8_t temperature reading of the internal temp sensor
-    */
-    int16_t readTemperature();
-    
-    /** Self check function for the sensor
-    *
-    */
-    void lis2mdlSelfCheck();
-
-    /** I2C function for writing a Byte to the LIS2MDL sensor
-    *   @param address address of the sensor
-    *   @param subaddress register location to which to write data
-    *   @param data data to be written 
-    */
-    void writeByte(uint8_t address, uint8_t subAddress, uint8_t data);
-    
-    /** I2C function for reading a Byte from the LIS2MDL sensor
-    *   @param address address of the sensor
-    *   @param subaddress register location to which to write data
-    */
-    uint8_t readByte(uint8_t address, char subAddress);
-    
-    /** I2C function for reading many Bytes from the LIS2MDL sensor
-    *   @param address address of the sensor
-    *   @param subaddress register location to which to write data
-    *   @param count number of bytes to read
-    *   @param dest pointer to the array which will store the read values    
-    */
-    void readBytes(uint8_t address, uint8_t subAddress, uint8_t count, char * dest);
-
-protected:
-    I2C *_i2c_p;
-    I2C &_i2c;
-
-};
-
-#endif
\ No newline at end of file