ADXL375をspiで使えるようにしたライブラリ
Dependents: Stability_seed2019_v2
ADXL375_spi.h@0:6bf9c1ce7bdc, 2020-03-17 (annotated)
- Committer:
- Sigma884
- Date:
- Tue Mar 17 12:30:36 2020 +0000
- Revision:
- 0:6bf9c1ce7bdc
commit for publish stability_seed2019_v1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Sigma884 | 0:6bf9c1ce7bdc | 1 | #ifndef ADXL375_SPI_H |
Sigma884 | 0:6bf9c1ce7bdc | 2 | #define ADXL375_SPI_H |
Sigma884 | 0:6bf9c1ce7bdc | 3 | |
Sigma884 | 0:6bf9c1ce7bdc | 4 | #include "mbed.h" |
Sigma884 | 0:6bf9c1ce7bdc | 5 | |
Sigma884 | 0:6bf9c1ce7bdc | 6 | //Registers. |
Sigma884 | 0:6bf9c1ce7bdc | 7 | #define ADXL375_DEVID_REG 0x00 |
Sigma884 | 0:6bf9c1ce7bdc | 8 | #define ADXL375_THRESH_TAP_REG 0x1D |
Sigma884 | 0:6bf9c1ce7bdc | 9 | #define ADXL375_OFSX_REG 0x1E |
Sigma884 | 0:6bf9c1ce7bdc | 10 | #define ADXL375_OFSY_REG 0x1F |
Sigma884 | 0:6bf9c1ce7bdc | 11 | #define ADXL375_OFSZ_REG 0x20 |
Sigma884 | 0:6bf9c1ce7bdc | 12 | #define ADXL375_DUR_REG 0x21 |
Sigma884 | 0:6bf9c1ce7bdc | 13 | #define ADXL375_LATENT_REG 0x22 |
Sigma884 | 0:6bf9c1ce7bdc | 14 | #define ADXL375_WINDOW_REG 0x23 |
Sigma884 | 0:6bf9c1ce7bdc | 15 | #define ADXL375_THRESH_ACT_REG 0x24 |
Sigma884 | 0:6bf9c1ce7bdc | 16 | #define ADXL375_THRESH_INACT_REG 0x25 |
Sigma884 | 0:6bf9c1ce7bdc | 17 | #define ADXL375_TIME_INACT_REG 0x26 |
Sigma884 | 0:6bf9c1ce7bdc | 18 | #define ADXL375_ACT_INACT_CTL_REG 0x27 |
Sigma884 | 0:6bf9c1ce7bdc | 19 | #define ADXL375_THRESH_FF_REG 0x28 |
Sigma884 | 0:6bf9c1ce7bdc | 20 | #define ADXL375_TIME_FF_REG 0x29 |
Sigma884 | 0:6bf9c1ce7bdc | 21 | #define ADXL375_TAP_AXES_REG 0x2A |
Sigma884 | 0:6bf9c1ce7bdc | 22 | #define ADXL375_ACT_TAP_STATUS_REG 0x2B |
Sigma884 | 0:6bf9c1ce7bdc | 23 | #define ADXL375_BW_RATE_REG 0x2C |
Sigma884 | 0:6bf9c1ce7bdc | 24 | #define ADXL375_POWER_CTL_REG 0x2D |
Sigma884 | 0:6bf9c1ce7bdc | 25 | #define ADXL375_INT_ENABLE_REG 0x2E |
Sigma884 | 0:6bf9c1ce7bdc | 26 | #define ADXL375_INT_MAP_REG 0x2F |
Sigma884 | 0:6bf9c1ce7bdc | 27 | #define ADXL375_INT_SOURCE_REG 0x30 |
Sigma884 | 0:6bf9c1ce7bdc | 28 | #define ADXL375_DATA_FORMAT_REG 0x31 |
Sigma884 | 0:6bf9c1ce7bdc | 29 | #define ADXL375_DATAX0_REG 0x32 |
Sigma884 | 0:6bf9c1ce7bdc | 30 | #define ADXL375_DATAX1_REG 0x33 |
Sigma884 | 0:6bf9c1ce7bdc | 31 | #define ADXL375_DATAY0_REG 0x34 |
Sigma884 | 0:6bf9c1ce7bdc | 32 | #define ADXL375_DATAY1_REG 0x35 |
Sigma884 | 0:6bf9c1ce7bdc | 33 | #define ADXL375_DATAZ0_REG 0x36 |
Sigma884 | 0:6bf9c1ce7bdc | 34 | #define ADXL375_DATAZ1_REG 0x37 |
Sigma884 | 0:6bf9c1ce7bdc | 35 | #define ADXL375_FIFO_CTL 0x38 |
Sigma884 | 0:6bf9c1ce7bdc | 36 | #define ADXL375_FIFO_STATUS 0x39 |
Sigma884 | 0:6bf9c1ce7bdc | 37 | |
Sigma884 | 0:6bf9c1ce7bdc | 38 | //Data rate codes. |
Sigma884 | 0:6bf9c1ce7bdc | 39 | #define ADXL375_3200HZ 0x0F |
Sigma884 | 0:6bf9c1ce7bdc | 40 | #define ADXL375_1600HZ 0x0E |
Sigma884 | 0:6bf9c1ce7bdc | 41 | #define ADXL375_800HZ 0x0D |
Sigma884 | 0:6bf9c1ce7bdc | 42 | #define ADXL375_400HZ 0x0C |
Sigma884 | 0:6bf9c1ce7bdc | 43 | #define ADXL375_200HZ 0x0B |
Sigma884 | 0:6bf9c1ce7bdc | 44 | #define ADXL375_100HZ 0x0A |
Sigma884 | 0:6bf9c1ce7bdc | 45 | #define ADXL375_50HZ 0x09 |
Sigma884 | 0:6bf9c1ce7bdc | 46 | #define ADXL375_25HZ 0x08 |
Sigma884 | 0:6bf9c1ce7bdc | 47 | #define ADXL375_12HZ5 0x07 |
Sigma884 | 0:6bf9c1ce7bdc | 48 | #define ADXL375_6HZ25 0x06 |
Sigma884 | 0:6bf9c1ce7bdc | 49 | |
Sigma884 | 0:6bf9c1ce7bdc | 50 | /* |
Sigma884 | 0:6bf9c1ce7bdc | 51 | // when ALT ADDRESS pin is LOW |
Sigma884 | 0:6bf9c1ce7bdc | 52 | #define ADXL375_I2C_LOW_READ 0xA7 |
Sigma884 | 0:6bf9c1ce7bdc | 53 | #define ADXL375_I2C_LOW_WRITE 0xA6 |
Sigma884 | 0:6bf9c1ce7bdc | 54 | #define ADXL375_I2C_LOW_ADDRESS 0x53 |
Sigma884 | 0:6bf9c1ce7bdc | 55 | |
Sigma884 | 0:6bf9c1ce7bdc | 56 | //when ALT ADDRESS pin is HIGH |
Sigma884 | 0:6bf9c1ce7bdc | 57 | #define ADXL375_I2C_HIGH_READ 0x3B |
Sigma884 | 0:6bf9c1ce7bdc | 58 | #define ADXL375_I2C_HIGH_WRITE 0x3A |
Sigma884 | 0:6bf9c1ce7bdc | 59 | #define ADXL375_I2C_HIGH_ADDRESS 0x1D |
Sigma884 | 0:6bf9c1ce7bdc | 60 | */ |
Sigma884 | 0:6bf9c1ce7bdc | 61 | |
Sigma884 | 0:6bf9c1ce7bdc | 62 | #define ADXL375_X 0x00 |
Sigma884 | 0:6bf9c1ce7bdc | 63 | #define ADXL375_Y 0x01 |
Sigma884 | 0:6bf9c1ce7bdc | 64 | #define ADXL375_Z 0x02 |
Sigma884 | 0:6bf9c1ce7bdc | 65 | |
Sigma884 | 0:6bf9c1ce7bdc | 66 | // modes |
Sigma884 | 0:6bf9c1ce7bdc | 67 | #define MeasurementMode 0x08 |
Sigma884 | 0:6bf9c1ce7bdc | 68 | |
Sigma884 | 0:6bf9c1ce7bdc | 69 | class ADXL375_spi |
Sigma884 | 0:6bf9c1ce7bdc | 70 | { |
Sigma884 | 0:6bf9c1ce7bdc | 71 | |
Sigma884 | 0:6bf9c1ce7bdc | 72 | public: |
Sigma884 | 0:6bf9c1ce7bdc | 73 | |
Sigma884 | 0:6bf9c1ce7bdc | 74 | ADXL375_spi(SPI &userSPI, PinName userPIN); |
Sigma884 | 0:6bf9c1ce7bdc | 75 | |
Sigma884 | 0:6bf9c1ce7bdc | 76 | void getOutput(float* output); |
Sigma884 | 0:6bf9c1ce7bdc | 77 | |
Sigma884 | 0:6bf9c1ce7bdc | 78 | int whoAmI(); |
Sigma884 | 0:6bf9c1ce7bdc | 79 | |
Sigma884 | 0:6bf9c1ce7bdc | 80 | void offset(float x, float y, float z); |
Sigma884 | 0:6bf9c1ce7bdc | 81 | |
Sigma884 | 0:6bf9c1ce7bdc | 82 | void setDataRate(char rate); |
Sigma884 | 0:6bf9c1ce7bdc | 83 | |
Sigma884 | 0:6bf9c1ce7bdc | 84 | private: |
Sigma884 | 0:6bf9c1ce7bdc | 85 | |
Sigma884 | 0:6bf9c1ce7bdc | 86 | /* |
Sigma884 | 0:6bf9c1ce7bdc | 87 | I2C *i2c; |
Sigma884 | 0:6bf9c1ce7bdc | 88 | char ADXL375_I2C_READ; |
Sigma884 | 0:6bf9c1ce7bdc | 89 | char ADXL375_I2C_WRITE; |
Sigma884 | 0:6bf9c1ce7bdc | 90 | char ADXL375_I2C_ADDRESS; |
Sigma884 | 0:6bf9c1ce7bdc | 91 | */ |
Sigma884 | 0:6bf9c1ce7bdc | 92 | SPI *spi; |
Sigma884 | 0:6bf9c1ce7bdc | 93 | DigitalOut cs; |
Sigma884 | 0:6bf9c1ce7bdc | 94 | |
Sigma884 | 0:6bf9c1ce7bdc | 95 | float offset_x, offset_y, offset_z; |
Sigma884 | 0:6bf9c1ce7bdc | 96 | |
Sigma884 | 0:6bf9c1ce7bdc | 97 | char singleByteRead(char address); |
Sigma884 | 0:6bf9c1ce7bdc | 98 | void singleByteWrite(char address, char data); |
Sigma884 | 0:6bf9c1ce7bdc | 99 | void multiByteRead(char startAddress, char* ptr_output, int size); |
Sigma884 | 0:6bf9c1ce7bdc | 100 | |
Sigma884 | 0:6bf9c1ce7bdc | 101 | }; |
Sigma884 | 0:6bf9c1ce7bdc | 102 | |
Sigma884 | 0:6bf9c1ce7bdc | 103 | #endif |