Modified to run on Renesas GR Peach board

Dependencies:   EthernetInterface HTTP-Server Webpage mbed-rpc mbed-src

Fork of HTTPServer_echoback by Takuya Urakawa

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Adafruit_L3GD20_U.h Source File

Adafruit_L3GD20_U.h

00001 /***************************************************
00002   This is a library for the L3GD20 GYROSCOPE
00003 
00004   Designed specifically to work with the Adafruit L3GD20 Breakout 
00005   ----> https://www.adafruit.com/products/1032
00006 
00007   These sensors use I2C or SPI to communicate, 2 pins (I2C) 
00008   or 4 pins (SPI) are required to interface.
00009 
00010   Adafruit invests time and resources providing this open source code,
00011   please support Adafruit and open-source hardware by purchasing
00012   products from Adafruit!
00013 
00014   Written by Kevin "KTOWN" Townsend for Adafruit Industries.
00015   BSD license, all text above must be included in any redistribution
00016  ****************************************************/
00017 #ifndef __L3GD20_H__
00018 #define __L3GD20_H__
00019 
00020 #include <Adafruit_Sensor.h>
00021 
00022 /*=========================================================================
00023     I2C ADDRESS/BITS AND SETTINGS
00024     -----------------------------------------------------------------------*/
00025     #define L3GD20_ADDRESS           (0xD6)        // 1101011x x=R/w
00026     #define L3GD20_WRITE             (0x00)        // Bit write
00027     #define L3GD20_READ              (0x01)        // Bit read
00028     #define L3GD20_POLL_TIMEOUT      (100)         // Maximum number of read attempts
00029     #define L3GD20_ID                0xD4
00030     #define L3GD20H_ID               0xD7
00031     #define GYRO_SENSITIVITY_250DPS  (0.00875F)    // Roughly 22/256 for fixed point match
00032     #define GYRO_SENSITIVITY_500DPS  (0.0175F)     // Roughly 45/256
00033     #define GYRO_SENSITIVITY_2000DPS (0.070F)      // Roughly 18/256
00034 /*=========================================================================*/
00035 
00036 /*=========================================================================
00037     REGISTERS
00038     -----------------------------------------------------------------------*/
00039     typedef enum
00040     {                                             // DEFAULT    TYPE
00041       GYRO_REGISTER_WHO_AM_I            = 0x0F,   // 11010100   r
00042       GYRO_REGISTER_CTRL_REG1           = 0x20,   // 00000111   rw
00043       GYRO_REGISTER_CTRL_REG2           = 0x21,   // 00000000   rw
00044       GYRO_REGISTER_CTRL_REG3           = 0x22,   // 00000000   rw
00045       GYRO_REGISTER_CTRL_REG4           = 0x23,   // 00000000   rw
00046       GYRO_REGISTER_CTRL_REG5           = 0x24,   // 00000000   rw
00047       GYRO_REGISTER_REFERENCE           = 0x25,   // 00000000   rw
00048       GYRO_REGISTER_OUT_TEMP            = 0x26,   //            r
00049       GYRO_REGISTER_STATUS_REG          = 0x27,   //            r
00050       GYRO_REGISTER_OUT_X_L             = 0x28,   //            r
00051       GYRO_REGISTER_OUT_X_H             = 0x29,   //            r
00052       GYRO_REGISTER_OUT_Y_L             = 0x2A,   //            r
00053       GYRO_REGISTER_OUT_Y_H             = 0x2B,   //            r
00054       GYRO_REGISTER_OUT_Z_L             = 0x2C,   //            r
00055       GYRO_REGISTER_OUT_Z_H             = 0x2D,   //            r
00056       GYRO_REGISTER_FIFO_CTRL_REG       = 0x2E,   // 00000000   rw
00057       GYRO_REGISTER_FIFO_SRC_REG        = 0x2F,   //            r
00058       GYRO_REGISTER_INT1_CFG            = 0x30,   // 00000000   rw
00059       GYRO_REGISTER_INT1_SRC            = 0x31,   //            r
00060       GYRO_REGISTER_TSH_XH              = 0x32,   // 00000000   rw
00061       GYRO_REGISTER_TSH_XL              = 0x33,   // 00000000   rw
00062       GYRO_REGISTER_TSH_YH              = 0x34,   // 00000000   rw
00063       GYRO_REGISTER_TSH_YL              = 0x35,   // 00000000   rw
00064       GYRO_REGISTER_TSH_ZH              = 0x36,   // 00000000   rw
00065       GYRO_REGISTER_TSH_ZL              = 0x37,   // 00000000   rw
00066       GYRO_REGISTER_INT1_DURATION       = 0x38    // 00000000   rw
00067     } gyroRegisters_t;    
00068 /*=========================================================================*/
00069 
00070 /*=========================================================================
00071     OPTIONAL SPEED SETTINGS
00072     -----------------------------------------------------------------------*/
00073     typedef enum
00074     {
00075       GYRO_RANGE_250DPS  = 250,
00076       GYRO_RANGE_500DPS  = 500,
00077       GYRO_RANGE_2000DPS = 2000
00078     } gyroRange_t;
00079 /*=========================================================================*/
00080 
00081 class Adafruit_L3GD20_Unified //: public Adafruit_Sensor
00082 {
00083   public:
00084     Adafruit_L3GD20_Unified(int32_t sensorID = -1);
00085 
00086     bool begin           ( gyroRange_t rng = GYRO_RANGE_250DPS );
00087     void enableAutoRange ( bool enabled );
00088     bool getEvent        ( sensors_event_t* );
00089     void getSensor       ( sensor_t* );
00090 
00091   private:
00092     void        write8  ( byte reg, byte value );
00093     uint8_t        read8   ( byte reg );
00094     gyroRange_t _range;
00095     int32_t     _sensorID;
00096     bool        _autoRangeEnabled;
00097 };
00098 
00099 #endif
00100