Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: CAN HTTPClient MODSERIAL MyThings Pyrn3GModem Socket TinyGPS MyUSBHost lwip-sys lwip mbed-rtos mbed-src
LSM303DLH.h
00001 #ifndef __LSM303DLH_H 00002 #define __LSM303DLH_H 00003 00004 #include "mbed.h" 00005 00006 // CONSTS 00007 00008 #define WRITE_BUFF_MAX 16 00009 #define LSM303DH_ID 0x49 00010 00011 // I2C Addresses (SAO -> 1) 00012 00013 #define LSM303D_ADDR_R 0x3B 00014 #define LSM303D_ADDR_W 0x3A 00015 00016 // REGISTERS 00017 00018 #define CTRL0 0x1F 00019 #define CTRL1 0x20 00020 #define CTRL2 0x21 00021 #define CTRL3 0x22 00022 #define CTRL4 0x23 00023 #define CTRL5 0x24 00024 #define CTRL6 0x25 00025 #define CTRL7 0x26 00026 00027 #define WHO_AM_I 0x0F 00028 00029 #define TEMP_OUT_L 0x05 00030 #define TEMP_OUT_H 0x06 00031 00032 #define STATUS_M 0x07 00033 #define OUT_X_L_M 0x08 00034 #define OUT_X_H_M 0x09 00035 #define OUT_Y_L_M 0x0A 00036 #define OUT_Y_H_M 0x0B 00037 #define OUT_Z_L_M 0x0C 00038 #define OUT_Z_H_M 0x0D 00039 00040 #define STATUS_A 0x27 00041 #define OUT_X_L_A 0x28 00042 #define OUT_X_H_A 0x29 00043 #define OUT_Y_L_A 0x2A 00044 #define OUT_Y_H_A 0x2B 00045 #define OUT_Z_L_A 0x2C 00046 #define OUT_Z_H_A 0x2D 00047 00048 class LSM303DLH { 00049 private: 00050 float accLSB; 00051 float magLSB; 00052 00053 I2C dev; 00054 uint8_t dataBuff[WRITE_BUFF_MAX]; // Who read more than WRITE_BUFF_MAX(16)? 00055 00056 uint8_t devRead(const uint8_t reg, uint8_t *data, uint8_t size); 00057 uint8_t devReadSingle(const uint8_t reg, uint8_t byte); 00058 uint8_t devWrite(const uint8_t reg, uint8_t *data, uint8_t size); 00059 uint8_t devWriteSingle(const uint8_t reg, uint8_t byte); 00060 public: 00061 LSM303DLH(PinName sda = p28, PinName scl = p27); 00062 void basicConfig(void); 00063 void readRawAcc(int16_t *x, int16_t *y, int16_t *z); 00064 void readRawMag(int16_t *x, int16_t *y, int16_t *z); 00065 void readAcc(float *x, float *y, float *z); 00066 void readMag(float *x, float *y, float *z); 00067 }; 00068 00069 #endif
Generated on Wed Jul 13 2022 02:07:11 by
1.7.2