Modified to run on Renesas GR Peach board

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

Fork of HTTPServer_echoback by Takuya Urakawa

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?

UserRevisionLine numberNew 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