27 #include <mraa/i2c.hpp> 
   28 #include <mraa/spi.hpp> 
   29 #include <mraa/gpio.hpp> 
   31 #define BMG160_I2C_BUS 0 
   32 #define BMG160_SPI_BUS 0 
   33 #define BMG160_DEFAULT_ADDR 0x68 
   72     static const uint8_t BMG160_RESET_BYTE = 0xb6;
 
   82     typedef enum : uint8_t {
 
   87       REG_RATE_X_LSB                   = 0x02,
 
   88       REG_RATE_X_MSB                   = 0x03,
 
   89       REG_RATE_Y_LSB                   = 0x04,
 
   90       REG_RATE_Y_MSB                   = 0x05,
 
   91       REG_RATE_Z_LSB                   = 0x06,
 
   92       REG_RATE_Z_MSB                   = 0x07,
 
   96       REG_INT_STATUS_0                 = 0x09,
 
   97       REG_INT_STATUS_1                 = 0x0a,
 
   98       REG_INT_STATUS_2                 = 0x0b,
 
   99       REG_INT_STATUS_3                 = 0x0c,
 
  103       REG_FIFO_STATUS                  = 0x0e,
 
  105       REG_GYR_RANGE                    = 0x0f,
 
  112       REG_SOFTRESET                    = 0x14,
 
  117       REG_INT_MAP_0                    = 0x17,
 
  118       REG_INT_MAP_1                    = 0x18,
 
  119       REG_INT_MAP_2                    = 0x19,
 
  131       REG_INT_RST_LATCH                = 0x21,
 
  133       REG_HIGH_TH_X                    = 0x22,
 
  134       REG_HIGH_DUR_X                   = 0x23,
 
  135       REG_HIGH_TH_Y                    = 0x24,
 
  136       REG_HIGH_DUR_Y                   = 0x25,
 
  137       REG_HIGH_TH_Z                    = 0x26,
 
  138       REG_HIGH_DUR_Z                   = 0x27,
 
  145       REG_TRIM_NVM_CTRL                = 0x33,
 
  161       REG_FIFO_CONFIG_0                = 0x3d,
 
  162       REG_FIFO_CONFIG_1                = 0x3e,
 
  172       _INT_STATUS_0_RESERVED_BITS      = 0xf0 | 0x08 | 0x01,
 
  174       INT_STATUS_0_HIGH_INT            = 0x02,
 
  175       INT_STATUS_0_ANY_INT             = 0x04
 
  182       _INT_STATUS_1_RESERVED_BITS      = 0x0f,
 
  184       INT_STATUS_1_FIFO_INT            = 0x10,
 
  185       INT_STATUS_1_FAST_OFFSET_INT     = 0x20,
 
  186       INT_STATUS_1_AUTO_OFFSET_INT     = 0x40,
 
  187       INT_STATUS_1_DATA_INT            = 0x80
 
  194       _INT_STATUS_2_RESERVED_BITS      = 0xf0,
 
  196       INT_STATUS_2_ANY_FIRST_X         = 0x01,
 
  197       INT_STATUS_2_ANY_FIRST_Y         = 0x02,
 
  198       INT_STATUS_2_ANY_FIRST_Z         = 0x04,
 
  199       INT_STATUS_2_ANY_SIGN            = 0x08
 
  206       _INT_STATUS_3_RESERVED_BITS      = 0xf0,
 
  208       INT_STATUS_3_HIGH_FIRST_X        = 0x01,
 
  209       INT_STATUS_3_HIGH_FIRST_Y        = 0x02,
 
  210       INT_STATUS_3_HIGH_FIRST_Z        = 0x04,
 
  211       INT_STATUS_3_HIGH_SIGN           = 0x08
 
  218       FIFO_STATUS_FRAME_COUNTER0       = 0x01,
 
  219       FIFO_STATUS_FRAME_COUNTER1       = 0x02,
 
  220       FIFO_STATUS_FRAME_COUNTER2       = 0x04,
 
  221       FIFO_STATUS_FRAME_COUNTER3       = 0x08,
 
  222       FIFO_STATUS_FRAME_COUNTER4       = 0x10,
 
  223       FIFO_STATUS_FRAME_COUNTER5       = 0x20,
 
  224       FIFO_STATUS_FRAME_COUNTER6       = 0x40,
 
  225       _FIFO_STATUS_FRAME_COUNTER_MASK  = 127,
 
  226       _FIFO_STATUS_FRAME_COUNTER_SHIFT = 0,
 
  228       FIFO_STATUS_FIFO_OVERRUN         = 0x80
 
  235       _GYR_RANGE_RESERVED_BITS         = 0x20 | 0x10 | 0x08,
 
  241       _GYR_RANGE_SHIFT                 = 0,
 
  243       GYR_RANGE_FIXED0                 = 0x40, 
 
  244       GYR_RANGE_FIXED1                 = 0x80, 
 
  245       _GYR_RANGE_FIXED_MASK            = 3,
 
  246       _GYR_RANGE_FIXED_SHIFT           = 6,
 
  247       _GYR_RANGE_FIXED_VALUE           = 2    
 
  265       _GYR_BW_RESERVED_BITS            = 0xf0,
 
  279       BW_2000_UNFILTERED               = 0, 
 
  294       _LPM1_RESERVED_MASK              = 0x40 | 0x10 | 0x01,
 
  296       LPM1_SLEEP_DUR0                  = 0x02, 
 
  297       LPM1_SLEEP_DUR1                  = 0x04,
 
  298       LPM1_SLEEP_DUR2                  = 0x08,
 
  299       _LPM1_SLEEP_MASK                 = 7,
 
  300       _LPM1_SLEEP_SHIFT                = 1,
 
  305       LPM1_POWER_MODE0                 = 0x20, 
 
  306       LPM1_POWER_MODE1                 = 0x40, 
 
  307       LPM1_POWER_MODE2                 = 0x80, 
 
  308       _LPM1_POWER_MODE_MASK            = 7,
 
  309       _LPM1_POWER_MODE_SHIFT           = 5
 
  330       POWER_MODE_NORMAL                = 0,
 
  331       POWER_MODE_DEEP_SUSPEND          = 1,
 
  332       POWER_MODE_SUSPEND               = 4
 
  339       _LPM2_RESERVED_BITS              = 0x08,
 
  341       LPM2_AUTOSLEEP_DUR0              = 0x01,
 
  342       LPM2_AUTOSLEEP_DUR1              = 0x02,
 
  343       LPM2_AUTOSLEEP_DUR2              = 0x04,
 
  344       _LPM2_AUTOSLEEP_DUR_MASK         = 7,
 
  345       _LPM2_AUTOSLEEP_DUR_SHIFT        = 0,
 
  347       LPM2_EXT_TRIG_SEL0               = 0x10,
 
  348       LPM2_EXT_TRIG_SEL1               = 0x20,
 
  349       _LPM2_EXT_TRIG_SEL_MASK          = 3,
 
  350       _LPM2_EXT_TRIG_SEL_SHIFT         = 4,
 
  352       LPM2_POWER_SAVE_MODE             = 0x40,
 
  353       LPM2_FAST_POWERUP                = 0x80
 
  361       AUTOSLEEP_DUR_NONE               = 0,
 
  362       AUTOSLEEP_DUR_4MS                = 1,
 
  363       AUTOSLEEP_DUR_5MS                = 2,
 
  364       AUTOSLEEP_DUR_8MS                = 3,
 
  365       AUTOSLEEP_DUR_10MS               = 4,
 
  366       AUTOSLEEP_DUR_15MS               = 5,
 
  367       AUTOSLEEP_DUR_20MS               = 6,
 
  368       AUTOSLEEP_DUR_40MS               = 7
 
  375       EXT_TRIG_SEL_NONE                = 0,
 
  376       EXT_TRIG_SEL_INT1                = 1,
 
  377       EXT_TRIG_SEL_INT2                = 2,
 
  385       _RATE_HBW_RESERVED_BITS          = 0x0f | 0x10 | 0x20,
 
  387       RATE_HBW_SHADOW_DIS              = 0x40,
 
  388       RATE_HBW_DATA_HIGH_BW            = 0x80
 
  395       _INT_EN_0_RESERVED_BITS          = 0x20 | 0x10 | 0x08 | 0x02 | 0x01,
 
  397       INT_EN_0_AUTO_OFFSET_EN          = 0x04,
 
  399       INT_EN_0_FIFO_EN                 = 0x40,
 
  400       INT_EN_0_DATA_EN                 = 0x80
 
  407       _INT_EN_1_INT1_RESERVED_BITS     = 0xf0,
 
  409       INT_EN_1_INT1_LVL                = 0x01, 
 
  410       INT_EN_1_INT1_OD                 = 0x02, 
 
  411       INT_EN_1_INT2_LVL                = 0x04,
 
  412       INT_EN_1_INT2_OD                 = 0x08
 
  419       _INT_MAP_0_RESERVED_BITS         = 0xf0 | 0x04 | 0x01,
 
  421       INT_MAP_0_INT1_ANY               = 0x02,
 
  422       INT_MAP_0_INT1_HIGH              = 0x08
 
  429       INT_MAP_1_INT1_DATA              = 0x01,
 
  430       INT_MAP_1_INT1_FAST_OFFSET       = 0x02,
 
  431       INT_MAP_1_INT1_FIFO              = 0x04,
 
  432       INT_MAP_1_INT1_AUTO_OFFSET       = 0x08,
 
  433       INT_MAP_1_INT2_AUTO_OFFSET       = 0x10,
 
  434       INT_MAP_1_INT2_FIFO              = 0x20,
 
  435       INT_MAP_1_INT2_FAST_OFFSET       = 0x40,
 
  436       INT_MAP_1_INT2_DATA              = 0x80
 
  443       _INT_1A_RESERVED_BITS           = 0xd5,
 
  445       INT_1A_ANY_UNFILT_DATA          = 0x02,
 
  446       INT_1A_HIGH_UNFILT_DATA         = 0x08,
 
  447       INT_1A_SLOW_OFFSET_UNFILT       = 0x20
 
  454       INT_1B_ANY_TH0                  = 0x01,
 
  455       INT_1B_ANY_TH1                  = 0x02,
 
  456       INT_1B_ANY_TH2                  = 0x04,
 
  457       INT_1B_ANY_TH3                  = 0x08,
 
  458       INT_1B_ANY_TH4                  = 0x10,
 
  459       INT_1B_ANY_TH5                  = 0x20,
 
  460       INT_1B_ANY_TH6                  = 0x40,
 
  461       _INT_1B_ANY_TH_MASK             = 127,
 
  462       _INT_1B_ANY_TH_SHIFT            = 0,
 
  464       INT_1B_FAST_OFFSET_UNFILT       = 0x80
 
  471       _INT_1C_RESERVED_BITS           = 0x08,
 
  473       INT_1C_ANY_EN_X                 = 0x01,
 
  474       INT_1C_ANY_EN_Y                 = 0x02,
 
  475       INT_1C_ANY_EN_Z                 = 0x04,
 
  477       INT_1C_ANY_DUR_SAMPLE0          = 0x10,
 
  478       INT_1C_ANY_DUR_SAMPLE1          = 0x20,
 
  479       INT_1C_ANY_DUR_SAMPLE_MASK      = 3,
 
  480       INT_1C_ANY_DUR_SAMPLE_SHIFT     = 4,
 
  482       INT_1C_AWAKE_DUR0               = 0x40,
 
  483       INT_1C_AWAKE_DUR1               = 0x80,
 
  484       INT_1C_AWAKE_DUR_MASK           = 3,
 
  485       INT_1C_AWAKE_DUR_SHIFT          = 6
 
  492       ANY_DUR_SAMPLE_4                 = 0, 
 
  493       ANY_DUR_SAMPLE_8                 = 1,
 
  494       ANY_DUR_SAMPLE_12                = 2,
 
  495       ANY_DUR_SAMPLE_16                = 3
 
  502       AWAKE_DUR_SAMPLE_8               = 0, 
 
  503       AWAKE_DUR_SAMPLE_16              = 1,
 
  504       AWAKE_DUR_SAMPLE_32              = 2,
 
  505       AWAKE_DUR_SAMPLE_64              = 3
 
  512       _INT_1E_RESERVED_BITS           = 0x7f,
 
  514       INT_1E_FIFO_WM_EN               = 0x80
 
  521       _INT_RST_LATCH_RESERVED_BITS     = 0x20,
 
  523       INT_RST_LATCH0                   = 0x01,
 
  524       INT_RST_LATCH1                   = 0x02,
 
  525       INT_RST_LATCH2                   = 0x04,
 
  526       INT_RST_LATCH3                   = 0x08,
 
  527       _INT_RST_LATCH_MASK              = 15,
 
  528       _INT_RST_LATCH_SHIFT             = 0,
 
  530       INT_RST_LATCH_STATUS_BIT         = 0x10,
 
  532       INT_RST_LATCH_OFFSET_RESET       = 0x40,
 
  533       INT_RST_LATCH_RESET_INT          = 0x80
 
  540       RST_LATCH_NON_LATCHED            = 0,
 
  541       RST_LATCH_TEMPORARY_250MS        = 1,
 
  542       RST_LATCH_TEMPORARY_500MS        = 2,
 
  543       RST_LATCH_TEMPORARY_1S           = 3,
 
  544       RST_LATCH_TEMPORARY_2S           = 4,
 
  545       RST_LATCH_TEMPORARY_4S           = 5,
 
  546       RST_LATCH_TEMPORARY_8S           = 6,
 
  547       RST_LATCH_LATCHED                = 7,
 
  551       RST_LATCH_TEMPORARY_250US        = 9,
 
  552       RST_LATCH_TEMPORARY_500US        = 10,
 
  553       RST_LATCH_TEMPORARY_1MS          = 11,
 
  554       RST_LATCH_TEMPORARY_12_5MS       = 12,
 
  555       RST_LATCH_TEMPORARY_25MS         = 13,
 
  556       RST_LATCH_TEMPORARY_50MS         = 14
 
  572       _HIGH_TH_TH_MASK                 = 31,
 
  573       _HIGH_TH_TH_SHIFT                = 1,
 
  577       _HIGH_TH_HY_MASK                 = 3,
 
  578       _HIGH_TH_HY_SHIFT                = 6
 
  585       SOC_SLOW_OFFSET_EN_X             = 0x01,
 
  586       SOC_SLOW_OFFSET_EN_Y             = 0x02,
 
  587       SOC_SLOW_OFFSET_EN_Z             = 0x04,
 
  589       SOC_SLOW_OFFSET_DUR0             = 0x08,
 
  590       SOC_SLOW_OFFSET_DUR1             = 0x10,
 
  591       SOC_SLOW_OFFSET_DUR2             = 0x20,
 
  592       _SOC_SLOW_OFFSET_DUR_MASK        = 7,
 
  593       _SOC_SLOW_OFFSET_DUR_SHIFT       = 3,
 
  595       SOC_SLOW_OFFSET_TH0              = 0x40,
 
  596       SOC_SLOW_OFFSET_TH1              = 0x80,
 
  597       _SOC_SLOW_OFFSET_TH_MASK         = 3,
 
  598       _SOC_SLOW_OFFSET_TH_SHIFT        = 6
 
  605       SLOW_OFFSET_DUR_40MS             = 0, 
 
  606       SLOW_OFFSET_DUR_80MS             = 1,
 
  607       SLOW_OFFSET_DUR_160MS            = 2,
 
  608       SLOW_OFFSET_DUR_320MS            = 3,
 
  609       SLOW_OFFSET_DUR_640MS            = 4,
 
  610       SLOW_OFFSET_DUR_1280MS           = 5
 
  617       SLOW_OFFSET_TH_0_1               = 0, 
 
  618       SLOW_OFFSET_TH_0_2               = 1,
 
  619       SLOW_OFFSET_TH_0_5               = 2,
 
  627       A_FOC_FAST_OFFSET_EN_X           = 0x01,
 
  628       A_FOC_FAST_OFFSET_EN_Y           = 0x02,
 
  629       A_FOC_FAST_OFFSET_EN_Z           = 0x04,
 
  631       A_FOC_FAST_OFFSET_EN             = 0x08,
 
  633       A_FOC_FAST_OFFSET_WORDLENGTH0    = 0x10,
 
  634       A_FOC_FAST_OFFSET_WORDLENGTH1    = 0x20,
 
  635       _A_FOC_FAST_OFFSET_WORDLENGTH_MASK = 3,
 
  636       _A_FOC_FAST_OFFSET_WORDLENGTH_SHIFT = 4,
 
  638       A_FOC_AUTO_OFFSET_WORDLENGTH0    = 0x40,
 
  639       A_FOC_AUTO_OFFSET_WORDLENGTH1    = 0x80,
 
  640       _A_FOC_AUTO_OFFSET_WORDLENGTH_MASK = 3,
 
  641       _A_FOC_AUTO_OFFSET_WORDLENGTH_SHIFT = 6
 
  648       FAST_OFFSET_WORDLENGTH_32        = 0, 
 
  649       FAST_OFFSET_WORDLENGTH_64        = 1,
 
  650       FAST_OFFSET_WORDLENGTH_128       = 2,
 
  651       FAST_OFFSET_WORDLENGTH_256       = 3
 
  658       AUTO_OFFSET_WORDLENGTH_32        = 0, 
 
  659       AUTO_OFFSET_WORDLENGTH_64        = 1,
 
  660       AUTO_OFFSET_WORDLENGTH_128       = 2,
 
  661       AUTO_OFFSET_WORDLENGTH_256       = 3
 
  668       TRIM_NVM_CTRL_NVM_PROG_MODE     = 0x01,
 
  669       TRIM_NVM_CTRL_NVM_PROG_TRIG     = 0x02,
 
  670       TRIM_NVM_CTRL_NVM_PROG_RDY      = 0x04,
 
  671       TRIM_NVM_CTRL_NVM_PROG_LOAD     = 0x08,
 
  673       TRIM_NVM_CTRL_NVM_REMAIN0       = 0x10,
 
  674       TRIM_NVM_CTRL_NVM_REMAIN1       = 0x20,
 
  675       TRIM_NVM_CTRL_NVM_REMAIN2       = 0x40,
 
  676       TRIM_NVM_CTRL_NVM_REMAIN3       = 0x80,
 
  677       _TRIM_NVM_CTRL_NVM_REMAIN_MASK  = 15,
 
  678       _TRIM_NVM_CTRL_NVM_REMAIN_SHIFT = 4
 
  685       _SPI3_WDT_RESERVED_BITS         = 0xf0 | 0x08,
 
  687       SPI3_WDT_SPI3                   = 0x01, 
 
  689       SPI3_WDT_I2C_WDT_SEL            = 0x02,
 
  690       SPI3_WDT_I2C_WDT_EN             = 0x04
 
  699       OFC1_OFFSET_Z0                  = 0x01, 
 
  700       OFC1_OFFSET_Z1                  = 0x02,
 
  701       OFC1_OFFSET_Z2                  = 0x04,
 
  702       _OFC1_OFFSET_Z_MASK             = 7,
 
  703       _OFC1_OFFSET_Z_SHIFT            = 0,
 
  705       OFC1_OFFSET_Y0                  = 0x08, 
 
  706       OFC1_OFFSET_Y1                  = 0x10,
 
  707       OFC1_OFFSET_Y2                  = 0x20,
 
  708       _OFC1_OFFSET_Y_MASK             = 7,
 
  709       _OFC1_OFFSET_Y_SHIFT            = 3,
 
  711       OFC1_OFFSET_X0                  = 0x08, 
 
  712       OFC1_OFFSET_X1                  = 0x10,
 
  713       _OFC1_OFFSET_X_MASK             = 3,
 
  714       _OFC1_OFFSET_X_SHIFT            = 6
 
  724       GP0_OFFSET_X0                   = 0x04, 
 
  725       GP0_OFFSET_X1                   = 0x08,
 
  726       _GP0_OFFSET_X_MASK              = 3,
 
  727       _GP0_OFFSET_X_SHIFT             = 2,
 
  741       _BIST_RESERVED_BITS             = 0x80 | 0x40 | 0x20 | 0x08,
 
  743       BIST_TRIG_BIST                  = 0x01,
 
  744       BIST_BIST_RDY                   = 0x02,
 
  745       BIST_BIST_FAIL                  = 0x04,
 
  754       FIFO_CONFIG_0_WATER_MARK0       = 0x01,
 
  755       FIFO_CONFIG_0_WATER_MARK1       = 0x02,
 
  756       FIFO_CONFIG_0_WATER_MARK2       = 0x04,
 
  757       FIFO_CONFIG_0_WATER_MARK3       = 0x08,
 
  758       FIFO_CONFIG_0_WATER_MARK4       = 0x10,
 
  759       FIFO_CONFIG_0_WATER_MARK5       = 0x20,
 
  760       FIFO_CONFIG_0_WATER_MARK6       = 0x40,
 
  761       _FIFO_CONFIG_0_WATER_MARK_MASK  = 127,
 
  762       _FIFO_CONFIG_0_WATER_MARK_SHIFT = 0,
 
  764       FIFO_CONFIG_0_TAG               = 0x80
 
  771       _FIFO_CONFIG_1_RESERVED_BITS     = 0x20 | 0x10 |0x08 | 0x04,
 
  773       FIFO_CONFIG_1_FIFO_DATA_SEL0     = 0x01,
 
  774       FIFO_CONFIG_1_FIFO_DATA_SEL1     = 0x02,
 
  775       _FIFO_CONFIG_1_FIFO_DATA_SEL     = 3,
 
  776       _FIFO_CONFIG_1_FIFO_DATA_SHIFT   = 0,
 
  778       FIFO_CONFIG_1_FIFO_MODE0         = 0x40,
 
  779       FIFO_CONFIG_1_FIFO_MODE1         = 0x80,
 
  780       _FIFO_CONFIG_1_FIFO_MODE_MASK    = 3,
 
  781       _FIFO_CONFIG_1_FIFO_MODE_SHIFT   = 6
 
  788       FIFO_DATA_SEL_XYZ               = 0,
 
  798       FIFO_MODE_BYPASS                = 0,
 
  826     BMG160(
int bus=BMG160_I2C_BUS, 
int addr=BMG160_DEFAULT_ADDR,
 
 1131 #if defined(SWIGJAVA) || defined(JAVACALLBACK) 
 1132     void installISR(INTERRUPT_PINS_T intr, 
int gpio, mraa::Edge level,
 
 1147     void installISR(INTERRUPT_PINS_T intr, 
int gpio, mraa::Edge level,
 
 1148                     void (*isr)(
void *), 
void *arg);
 
 1174     int readRegs(uint8_t reg, uint8_t *buffer, 
int len);
 
 1182     void writeReg(uint8_t reg, uint8_t val);
 
 1188     mraa::Gpio *m_gpioIntr1;
 
 1189     mraa::Gpio *m_gpioIntr2;
 
 1192     mraa::Gpio *m_gpioCS;
 
 1207     float m_temperature;
 
 1215     mraa::Gpio*& getPin(INTERRUPT_PINS_T intr);
 
 1218 #if defined(SWIGJAVA) || defined(JAVACALLBACK) 
 1219     void installISR(INTERRUPT_PINS_T intr, 
int gpio, mraa::Edge level,
 
 1220                     void (*isr)(
void *), 
void *arg);
 
void clearInterruptLatches()
Definition: bmg160.cxx:460
 
INT_MAP_1_BITS_T
Definition: bmg160.hpp:428
 
BIST_BITS_T
Definition: bmg160.hpp:740
 
BMG160_REGS_T
Definition: bmg160.hpp:82
 
INT_1C_BITS_T
Definition: bmg160.hpp:470
 
INT_EN_0_BITS_T
Definition: bmg160.hpp:394
 
HIGH_TH_BITS_T
Definition: bmg160.hpp:564
 
void setBandwidth(BW_T bw)
Definition: bmg160.cxx:369
 
uint8_t getInterruptStatus3()
Definition: bmg160.cxx:527
 
RATE_HBW_BITS_T
Definition: bmg160.hpp:384
 
void enableRegisterShadowing(bool shadow)
Definition: bmg160.cxx:488
 
float getTemperature(bool fahrenheit=false)
Definition: bmg160.cxx:324
 
RST_LATCH_T getInterruptLatchBehavior()
Definition: bmg160.cxx:469
 
LPM1_BITS_T
Definition: bmg160.hpp:292
 
POWER_MODE_T
Definition: bmg160.hpp:329
 
A_FOC_BITS_T
Definition: bmg160.hpp:626
 
float * getGyroscope()
Definition: bmg160.cxx:316
 
OFC1_OFFSET_BITS_T
Definition: bmg160.hpp:698
 
SLOW_OFFSET_TH_T
Definition: bmg160.hpp:616
 
uint8_t getInterruptStatus0()
Definition: bmg160.cxx:512
 
void setInterruptMap0(uint8_t bits)
Definition: bmg160.cxx:418
 
uint8_t readReg(uint8_t reg)
Definition: bmg160.cxx:203
 
uint8_t getInterruptOutputControl()
Definition: bmg160.cxx:448
 
GP0_BITS_T
Definition: bmg160.hpp:720
 
RST_LATCH_T
Definition: bmg160.hpp:539
 
uint8_t getChipID()
Definition: bmg160.cxx:299
 
BW_T
Definition: bmg160.hpp:278
 
API for the BMG160 16 bit Trixial Gyroscope. 
Definition: bmg160.hpp:69
 
FIFO_CONFIG_1_BITS_T
Definition: bmg160.hpp:770
 
void writeReg(uint8_t reg, uint8_t val)
Definition: bmg160.cxx:259
 
ANY_DUR_SAMPLE_T
Definition: bmg160.hpp:491
 
uint8_t getInterruptEnable0()
Definition: bmg160.cxx:401
 
SPI3_WDT_BITS_T
Definition: bmg160.hpp:684
 
INT_STATUS_0_BITS_T
Definition: bmg160.hpp:171
 
LPM2_BITS_T
Definition: bmg160.hpp:338
 
void setInterruptLatchBehavior(RST_LATCH_T latch)
Definition: bmg160.cxx:478
 
void installISR(INTERRUPT_PINS_T intr, int gpio, mraa::Edge level, void(*isr)(void *), void *arg)
Definition: bmg160.cxx:546
 
void uninstallISR(INTERRUPT_PINS_T intr)
Definition: bmg160.cxx:560
 
SLOW_OFFSET_DUR_T
Definition: bmg160.hpp:604
 
~BMG160()
Definition: bmg160.cxx:109
 
FIFO_MODE_T
Definition: bmg160.hpp:797
 
uint8_t getInterruptStatus1()
Definition: bmg160.cxx:517
 
uint8_t getInterruptStatus2()
Definition: bmg160.cxx:522
 
INT_1E_BITS_T
Definition: bmg160.hpp:511
 
INT_STATUS_3_BITS_T
Definition: bmg160.hpp:205
 
void setInterruptEnable0(uint8_t bits)
Definition: bmg160.cxx:406
 
void setInterruptSrc(uint8_t bits)
Definition: bmg160.cxx:441
 
void enableFIFO(bool useFIFO)
Definition: bmg160.cxx:198
 
SOC_BITS_T
Definition: bmg160.hpp:584
 
INT_EN_1_BITS_T
Definition: bmg160.hpp:406
 
FIFO_STATUS_BITS_T
Definition: bmg160.hpp:217
 
INT_STATUS_1_BITS_T
Definition: bmg160.hpp:181
 
AWAKE_DUR_SAMPLE_T
Definition: bmg160.hpp:501
 
INT_MAP_0_BITS_T
Definition: bmg160.hpp:418
 
void enableOutputFiltering(bool filter)
Definition: bmg160.cxx:500
 
void reset()
Definition: bmg160.cxx:332
 
INT_STATUS_2_BITS_T
Definition: bmg160.hpp:193
 
INT_1B_BITS_T
Definition: bmg160.hpp:453
 
BMG160(int bus=BMG160_I2C_BUS, int addr=BMG160_DEFAULT_ADDR, int cs=-1)
Definition: bmg160.cxx:45
 
void setPowerMode(POWER_MODE_T power)
Definition: bmg160.cxx:374
 
FIFO_DATA_SEL_T
Definition: bmg160.hpp:787
 
uint8_t getInterruptMap0()
Definition: bmg160.cxx:413
 
AUTOSLEEP_DUR_T
Definition: bmg160.hpp:360
 
uint8_t getInterruptMap1()
Definition: bmg160.cxx:425
 
FAST_OFFSET_WORDLENGTH_T
Definition: bmg160.hpp:647
 
void setRange(RANGE_T range)
Definition: bmg160.cxx:338
 
GYR_RANGE_BITS_T
Definition: bmg160.hpp:234
 
uint8_t getInterruptSrc()
Definition: bmg160.cxx:436
 
void update()
Definition: bmg160.cxx:145
 
AUTO_OFFSET_WORDLENGTH_T
Definition: bmg160.hpp:657
 
GYR_BW_BITS_T
Definition: bmg160.hpp:264
 
TRIM_NVM_CTRL_BITS_T
Definition: bmg160.hpp:667
 
SLEEP_DUR_T
Definition: bmg160.hpp:315
 
void init(POWER_MODE_T pwr=POWER_MODE_NORMAL, RANGE_T range=RANGE_250, BW_T bw=BW_400_47)
Definition: bmg160.cxx:122
 
FIFO_CONFIG_0_BITS_T
Definition: bmg160.hpp:753
 
RANGE_T
Definition: bmg160.hpp:253
 
void setInterruptOutputControl(uint8_t bits)
Definition: bmg160.cxx:453
 
void setInterruptMap1(uint8_t bits)
Definition: bmg160.cxx:430
 
int readRegs(uint8_t reg, uint8_t *buffer, int len)
Definition: bmg160.cxx:225
 
void fifoSetWatermark(int wm)
Definition: bmg160.cxx:385
 
EXT_TRIG_SEL_T
Definition: bmg160.hpp:374
 
INT_RST_LATCH_BITS_T
Definition: bmg160.hpp:520
 
void fifoConfig(FIFO_MODE_T mode, FIFO_DATA_SEL_T axes)
Definition: bmg160.cxx:393
 
INT_1A_BITS_T
Definition: bmg160.hpp:442