base program for tilt measurement
Dependencies: COG4050_ADT7420 ADXL362
Fork of COG4050_adxl355_adxl357-ver2 by
Diff: ADXL35x/ADXL355.cpp
- Revision:
- 2:14dc1ec57f3b
- Child:
- 3:ee052fdb4331
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ADXL35x/ADXL355.cpp Tue Aug 07 12:49:37 2018 +0000 @@ -0,0 +1,51 @@ +#include <stdint.h> +#include "mbed.h" +#include "ADXL355.h" + + +//DigitalOut(cs); ///< DigitalOut instance for the chipselect of the ADXL +//DigitalOut int1; ///< DigitalOut instance for the chipselect of the ADXL +//DigitalOut int2; ///< DigitalOut instance for the chipselect of the ADXL + +ADXL355::ADXL355(PinName cs_pin, PinName MOSI, PinName MISO, PinName SCK): adxl355(MOSI, MISO, SCK), cs(cs_pin){ + cs = 1; + adxl355.format(8,_SPI_MODE); + adxl355.lock(); +} + +/** SPI bus frequency */ +void ADXL355::frequency(int hz){ + adxl355.frequency(hz); +} + +/** Software resets */ + void ADXL355::reset(void){ + adxl355.format(8, _SPI_MODE); + cs = false; + // Writing Code 0x52 (representing the letter, R, in ASCII or unicode) to this register immediately resets the ADXL362. + write_reg(RESET, _RESET); + cs = true; +} + + /** Writes the reg register with data */ +void ADXL355::write_reg(ADXL355_register_t reg, uint8_t data){ + adxl355.format(8, _SPI_MODE); + cs = false; + adxl355.write(reg<<1 | _WRITE_REG_CMD); + adxl355.write(data); + cs = true; +} +void ADXL355::write_reg_u16(ADXL355_register_t reg, uint16_t data){} + +/** Reads the reg register */ +uint8_t ADXL355::read_reg(ADXL355_register_t reg){ + uint8_t ret_val; + adxl355.format(8, _SPI_MODE); + cs = false; + adxl355.write(reg<<1 | _READ_REG_CMD); + ret_val = adxl355.write(_DUMMY_BYTE); + cs = true; + return ret_val; +} +uint16_t ADXL355::read_reg_u16(ADXL355_register_t reg){} +uint32_t ADXL355::read_reg_u32(ADXL355_register_t reg){} \ No newline at end of file