My implementation of Bosh BMI160 Only I2C is tested so far.
Dependents: test_BMI160 TFT_test_MAX32630FTHR
BMI160.h@0:9aed6f5a35c0, 2017-08-25 (annotated)
- Committer:
- Rhyme
- Date:
- Fri Aug 25 05:07:26 2017 +0000
- Revision:
- 0:9aed6f5a35c0
- Child:
- 1:d56df81c389b
Register bit description entered
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| Rhyme | 0:9aed6f5a35c0 | 1 | #ifndef _BMI160_H_ |
| Rhyme | 0:9aed6f5a35c0 | 2 | #define _BMI160_H_ |
| Rhyme | 0:9aed6f5a35c0 | 3 | class BMI160 { |
| Rhyme | 0:9aed6f5a35c0 | 4 | public: |
| Rhyme | 0:9aed6f5a35c0 | 5 | /** |
| Rhyme | 0:9aed6f5a35c0 | 6 | * BMI160 I2C Interface |
| Rhyme | 0:9aed6f5a35c0 | 7 | * |
| Rhyme | 0:9aed6f5a35c0 | 8 | * @param sda SDA pin |
| Rhyme | 0:9aed6f5a35c0 | 9 | * @param scl SCL pin |
| Rhyme | 0:9aed6f5a35c0 | 10 | * @param addr address of the I2C peripheral |
| Rhyme | 0:9aed6f5a35c0 | 11 | */ |
| Rhyme | 0:9aed6f5a35c0 | 12 | BMI160(PinName sda, PinName scl, int addr) ; |
| Rhyme | 0:9aed6f5a35c0 | 13 | |
| Rhyme | 0:9aed6f5a35c0 | 14 | /** |
| Rhyme | 0:9aed6f5a35c0 | 15 | * BMI160 SPI Interface |
| Rhyme | 0:9aed6f5a35c0 | 16 | * |
| Rhyme | 0:9aed6f5a35c0 | 17 | * @param sck SPI SCKL pin |
| Rhyme | 0:9aed6f5a35c0 | 18 | * @param miso SPI Master In Slave Out pin |
| Rhyme | 0:9aed6f5a35c0 | 19 | * @param mosi SPI Master Out Slave In pin |
| Rhyme | 0:9aed6f5a35c0 | 20 | * @param cs SPI Chip Select pin |
| Rhyme | 0:9aed6f5a35c0 | 21 | */ |
| Rhyme | 0:9aed6f5a35c0 | 22 | BMI160(PinName sck, PinName miso, PinName mosi, PinName cs) ; |
| Rhyme | 0:9aed6f5a35c0 | 23 | |
| Rhyme | 0:9aed6f5a35c0 | 24 | /** |
| Rhyme | 0:9aed6f5a35c0 | 25 | * BMI160 destructor |
| Rhyme | 0:9aed6f5a35c0 | 26 | */ |
| Rhyme | 0:9aed6f5a35c0 | 27 | ~BMI160() ; |
| Rhyme | 0:9aed6f5a35c0 | 28 | |
| Rhyme | 0:9aed6f5a35c0 | 29 | uint8_t getChipID(void) ; |
| Rhyme | 0:9aed6f5a35c0 | 30 | |
| Rhyme | 0:9aed6f5a35c0 | 31 | private: |
| Rhyme | 0:9aed6f5a35c0 | 32 | SPI *m_spi ; |
| Rhyme | 0:9aed6f5a35c0 | 33 | I2C *m_i2c ; |
| Rhyme | 0:9aed6f5a35c0 | 34 | DigitalOut *m_cs ; |
| Rhyme | 0:9aed6f5a35c0 | 35 | int m_addr ; |
| Rhyme | 0:9aed6f5a35c0 | 36 | |
| Rhyme | 0:9aed6f5a35c0 | 37 | void init(void) ; |
| Rhyme | 0:9aed6f5a35c0 | 38 | void i2c_readRegs(int addr, uint8_t *data, int len) ; |
| Rhyme | 0:9aed6f5a35c0 | 39 | void i2c_writeRegs(uint8_t *data, int len) ; |
| Rhyme | 0:9aed6f5a35c0 | 40 | void spi_readRegs(int addr, uint8_t *data, int len) ; |
| Rhyme | 0:9aed6f5a35c0 | 41 | void spi_writeRegs(uint8_t *data, int len) ; |
| Rhyme | 0:9aed6f5a35c0 | 42 | void readRegs(int addr, uint8_t *data, int len) ; |
| Rhyme | 0:9aed6f5a35c0 | 43 | void writeRegs(uint8_t *data, int len) ; |
| Rhyme | 0:9aed6f5a35c0 | 44 | } ; |
| Rhyme | 0:9aed6f5a35c0 | 45 | |
| Rhyme | 0:9aed6f5a35c0 | 46 | #endif /* _BMI160_H_ */ |