base program for tilt measurement
Fork of COG4050_adxl355_adxl357 by
main.cpp
- Committer:
- vtoffoli
- Date:
- 2018-08-07
- Revision:
- 1:d3aeaa02781d
- Parent:
- 0:74a0756399ff
- Child:
- 2:14dc1ec57f3b
File content as of revision 1:d3aeaa02781d:
#include "mbed.h" const static uint8_t _WRITE_REG_CMD = 0x0A; // write register const static uint8_t _READ_REG_CMD = 0x0B; // read register const static uint8_t _DUMMY_BYTE = 0xAA; SPI adxl362(SPI1_MOSI, SPI1_MISO, SPI1_SCLK); DigitalOut CS(SPI1_CS3); void adxl362_reset(void); int adxl362_GetID(void); void adxl362_write_reg(uint8_t reg, uint8_t data); uint8_t adxl362_read_reg(uint8_t reg); Serial pc(USBTX, USBRX); int main() { pc.baud(9600); pc.printf("SPI ADXL362 Demo\n"); CS = 1; adxl362.lock(); //adxl362_reset(); wait_ms(600); // we need to wait at least 500ms after ADXL362 reset //adxl362.set_mode(ADXL362::MEASUREMENT); uint8_t x,y,z; while(1) { x=adxl362_GetID(); //y=adxl362.scany_u8(); //z=adxl362.scanz_u8(); //printf("x = %x y = %x z = %x\r\n",x,y,z); printf("id = %x \r\n",x); wait_ms(10); } } void adxl362_reset(void) { // format adxl362.format(8,0); adxl362.frequency(5e6); adxl362_write_reg(0x1F, 0x52); } void adxl362_write_reg(uint8_t reg, uint8_t data) { adxl362.format(8, 0); CS = 0; adxl362.write(_WRITE_REG_CMD); adxl362.write(static_cast<uint8_t>(reg)); adxl362.write(static_cast<uint8_t>(data)); CS = 1; } uint8_t adxl362_read_reg(uint8_t reg) { uint8_t ret_val; CS = 0; adxl362.format(8, 0); adxl362.write(_READ_REG_CMD); adxl362.write(reg); ret_val = adxl362.write(_DUMMY_BYTE); CS = 1; return ret_val; } int adxl362_GetID(void) { uint8_t ret_val; ret_val = adxl362_read_reg(0x00); return ret_val; }