Modified to run on Renesas GR Peach board
Dependencies: EthernetInterface HTTP-Server Webpage mbed-rpc mbed-src
Fork of HTTPServer_echoback by
Adafruit_10DOF/Adafruit_L3GD20_U.h@16:5d102be2566c, 2015-10-07 (annotated)
- Committer:
- webOnBoard
- Date:
- Wed Oct 07 20:42:51 2015 +0000
- Revision:
- 16:5d102be2566c
web based AHRS demo Renesas GR Peach board; Using HTTP Server/RPC Adafruit 10DOF
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
webOnBoard | 16:5d102be2566c | 1 | /*************************************************** |
webOnBoard | 16:5d102be2566c | 2 | This is a library for the L3GD20 GYROSCOPE |
webOnBoard | 16:5d102be2566c | 3 | |
webOnBoard | 16:5d102be2566c | 4 | Designed specifically to work with the Adafruit L3GD20 Breakout |
webOnBoard | 16:5d102be2566c | 5 | ----> https://www.adafruit.com/products/1032 |
webOnBoard | 16:5d102be2566c | 6 | |
webOnBoard | 16:5d102be2566c | 7 | These sensors use I2C or SPI to communicate, 2 pins (I2C) |
webOnBoard | 16:5d102be2566c | 8 | or 4 pins (SPI) are required to interface. |
webOnBoard | 16:5d102be2566c | 9 | |
webOnBoard | 16:5d102be2566c | 10 | Adafruit invests time and resources providing this open source code, |
webOnBoard | 16:5d102be2566c | 11 | please support Adafruit and open-source hardware by purchasing |
webOnBoard | 16:5d102be2566c | 12 | products from Adafruit! |
webOnBoard | 16:5d102be2566c | 13 | |
webOnBoard | 16:5d102be2566c | 14 | Written by Kevin "KTOWN" Townsend for Adafruit Industries. |
webOnBoard | 16:5d102be2566c | 15 | BSD license, all text above must be included in any redistribution |
webOnBoard | 16:5d102be2566c | 16 | ****************************************************/ |
webOnBoard | 16:5d102be2566c | 17 | #ifndef __L3GD20_H__ |
webOnBoard | 16:5d102be2566c | 18 | #define __L3GD20_H__ |
webOnBoard | 16:5d102be2566c | 19 | |
webOnBoard | 16:5d102be2566c | 20 | #include <Adafruit_Sensor.h> |
webOnBoard | 16:5d102be2566c | 21 | |
webOnBoard | 16:5d102be2566c | 22 | /*========================================================================= |
webOnBoard | 16:5d102be2566c | 23 | I2C ADDRESS/BITS AND SETTINGS |
webOnBoard | 16:5d102be2566c | 24 | -----------------------------------------------------------------------*/ |
webOnBoard | 16:5d102be2566c | 25 | #define L3GD20_ADDRESS (0xD6) // 1101011x x=R/w |
webOnBoard | 16:5d102be2566c | 26 | #define L3GD20_WRITE (0x00) // Bit write |
webOnBoard | 16:5d102be2566c | 27 | #define L3GD20_READ (0x01) // Bit read |
webOnBoard | 16:5d102be2566c | 28 | #define L3GD20_POLL_TIMEOUT (100) // Maximum number of read attempts |
webOnBoard | 16:5d102be2566c | 29 | #define L3GD20_ID 0xD4 |
webOnBoard | 16:5d102be2566c | 30 | #define L3GD20H_ID 0xD7 |
webOnBoard | 16:5d102be2566c | 31 | #define GYRO_SENSITIVITY_250DPS (0.00875F) // Roughly 22/256 for fixed point match |
webOnBoard | 16:5d102be2566c | 32 | #define GYRO_SENSITIVITY_500DPS (0.0175F) // Roughly 45/256 |
webOnBoard | 16:5d102be2566c | 33 | #define GYRO_SENSITIVITY_2000DPS (0.070F) // Roughly 18/256 |
webOnBoard | 16:5d102be2566c | 34 | /*=========================================================================*/ |
webOnBoard | 16:5d102be2566c | 35 | |
webOnBoard | 16:5d102be2566c | 36 | /*========================================================================= |
webOnBoard | 16:5d102be2566c | 37 | REGISTERS |
webOnBoard | 16:5d102be2566c | 38 | -----------------------------------------------------------------------*/ |
webOnBoard | 16:5d102be2566c | 39 | typedef enum |
webOnBoard | 16:5d102be2566c | 40 | { // DEFAULT TYPE |
webOnBoard | 16:5d102be2566c | 41 | GYRO_REGISTER_WHO_AM_I = 0x0F, // 11010100 r |
webOnBoard | 16:5d102be2566c | 42 | GYRO_REGISTER_CTRL_REG1 = 0x20, // 00000111 rw |
webOnBoard | 16:5d102be2566c | 43 | GYRO_REGISTER_CTRL_REG2 = 0x21, // 00000000 rw |
webOnBoard | 16:5d102be2566c | 44 | GYRO_REGISTER_CTRL_REG3 = 0x22, // 00000000 rw |
webOnBoard | 16:5d102be2566c | 45 | GYRO_REGISTER_CTRL_REG4 = 0x23, // 00000000 rw |
webOnBoard | 16:5d102be2566c | 46 | GYRO_REGISTER_CTRL_REG5 = 0x24, // 00000000 rw |
webOnBoard | 16:5d102be2566c | 47 | GYRO_REGISTER_REFERENCE = 0x25, // 00000000 rw |
webOnBoard | 16:5d102be2566c | 48 | GYRO_REGISTER_OUT_TEMP = 0x26, // r |
webOnBoard | 16:5d102be2566c | 49 | GYRO_REGISTER_STATUS_REG = 0x27, // r |
webOnBoard | 16:5d102be2566c | 50 | GYRO_REGISTER_OUT_X_L = 0x28, // r |
webOnBoard | 16:5d102be2566c | 51 | GYRO_REGISTER_OUT_X_H = 0x29, // r |
webOnBoard | 16:5d102be2566c | 52 | GYRO_REGISTER_OUT_Y_L = 0x2A, // r |
webOnBoard | 16:5d102be2566c | 53 | GYRO_REGISTER_OUT_Y_H = 0x2B, // r |
webOnBoard | 16:5d102be2566c | 54 | GYRO_REGISTER_OUT_Z_L = 0x2C, // r |
webOnBoard | 16:5d102be2566c | 55 | GYRO_REGISTER_OUT_Z_H = 0x2D, // r |
webOnBoard | 16:5d102be2566c | 56 | GYRO_REGISTER_FIFO_CTRL_REG = 0x2E, // 00000000 rw |
webOnBoard | 16:5d102be2566c | 57 | GYRO_REGISTER_FIFO_SRC_REG = 0x2F, // r |
webOnBoard | 16:5d102be2566c | 58 | GYRO_REGISTER_INT1_CFG = 0x30, // 00000000 rw |
webOnBoard | 16:5d102be2566c | 59 | GYRO_REGISTER_INT1_SRC = 0x31, // r |
webOnBoard | 16:5d102be2566c | 60 | GYRO_REGISTER_TSH_XH = 0x32, // 00000000 rw |
webOnBoard | 16:5d102be2566c | 61 | GYRO_REGISTER_TSH_XL = 0x33, // 00000000 rw |
webOnBoard | 16:5d102be2566c | 62 | GYRO_REGISTER_TSH_YH = 0x34, // 00000000 rw |
webOnBoard | 16:5d102be2566c | 63 | GYRO_REGISTER_TSH_YL = 0x35, // 00000000 rw |
webOnBoard | 16:5d102be2566c | 64 | GYRO_REGISTER_TSH_ZH = 0x36, // 00000000 rw |
webOnBoard | 16:5d102be2566c | 65 | GYRO_REGISTER_TSH_ZL = 0x37, // 00000000 rw |
webOnBoard | 16:5d102be2566c | 66 | GYRO_REGISTER_INT1_DURATION = 0x38 // 00000000 rw |
webOnBoard | 16:5d102be2566c | 67 | } gyroRegisters_t; |
webOnBoard | 16:5d102be2566c | 68 | /*=========================================================================*/ |
webOnBoard | 16:5d102be2566c | 69 | |
webOnBoard | 16:5d102be2566c | 70 | /*========================================================================= |
webOnBoard | 16:5d102be2566c | 71 | OPTIONAL SPEED SETTINGS |
webOnBoard | 16:5d102be2566c | 72 | -----------------------------------------------------------------------*/ |
webOnBoard | 16:5d102be2566c | 73 | typedef enum |
webOnBoard | 16:5d102be2566c | 74 | { |
webOnBoard | 16:5d102be2566c | 75 | GYRO_RANGE_250DPS = 250, |
webOnBoard | 16:5d102be2566c | 76 | GYRO_RANGE_500DPS = 500, |
webOnBoard | 16:5d102be2566c | 77 | GYRO_RANGE_2000DPS = 2000 |
webOnBoard | 16:5d102be2566c | 78 | } gyroRange_t; |
webOnBoard | 16:5d102be2566c | 79 | /*=========================================================================*/ |
webOnBoard | 16:5d102be2566c | 80 | |
webOnBoard | 16:5d102be2566c | 81 | class Adafruit_L3GD20_Unified //: public Adafruit_Sensor |
webOnBoard | 16:5d102be2566c | 82 | { |
webOnBoard | 16:5d102be2566c | 83 | public: |
webOnBoard | 16:5d102be2566c | 84 | Adafruit_L3GD20_Unified(int32_t sensorID = -1); |
webOnBoard | 16:5d102be2566c | 85 | |
webOnBoard | 16:5d102be2566c | 86 | bool begin ( gyroRange_t rng = GYRO_RANGE_250DPS ); |
webOnBoard | 16:5d102be2566c | 87 | void enableAutoRange ( bool enabled ); |
webOnBoard | 16:5d102be2566c | 88 | bool getEvent ( sensors_event_t* ); |
webOnBoard | 16:5d102be2566c | 89 | void getSensor ( sensor_t* ); |
webOnBoard | 16:5d102be2566c | 90 | |
webOnBoard | 16:5d102be2566c | 91 | private: |
webOnBoard | 16:5d102be2566c | 92 | void write8 ( byte reg, byte value ); |
webOnBoard | 16:5d102be2566c | 93 | uint8_t read8 ( byte reg ); |
webOnBoard | 16:5d102be2566c | 94 | gyroRange_t _range; |
webOnBoard | 16:5d102be2566c | 95 | int32_t _sensorID; |
webOnBoard | 16:5d102be2566c | 96 | bool _autoRangeEnabled; |
webOnBoard | 16:5d102be2566c | 97 | }; |
webOnBoard | 16:5d102be2566c | 98 | |
webOnBoard | 16:5d102be2566c | 99 | #endif |
webOnBoard | 16:5d102be2566c | 100 |