base program for tilt measurement
Dependencies: COG4050_ADT7420 ADXL362
Fork of COG4050_adxl355_adxl357-ver2 by
main.cpp
- Committer:
- vtoffoli
- Date:
- 2018-08-21
- Revision:
- 8:9e6ead2ee8d7
- Parent:
- 7:5aaa09c40283
- Child:
- 9:6c803986dbde
File content as of revision 8:9e6ead2ee8d7:
#include "mbed.h" #include <math.h> #include <inttypes.h> #include "ADXL355.h" #include "ADXRS290.h" #include "CALIBRATION.h" Serial pc(USBTX, USBRX); ADXL355 accl(SPI1_CS0, SPI1_MOSI, SPI1_MISO, SPI1_SCLK); // PMOD port ADXRS290 gyro(SPI0_CS2, SPI0_MOSI, SPI0_MISO, SPI0_SCLK); // PMOD port CALIBRATION test; float angle[3][12] = { {-55, -125, -147, 33, -128, 52, 0, 0, 0, 0, 0, 0}, {6, -6, 20, -20, -69, 69, 0, 0, 0, 0, 0, 0 }, {1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0}}; float meas[3][12] = { {-0.09, 0.16, -0.31, 0.37, 0.91, -0.88}, {-0.78, 0.81, -0.46, 0.49, -0.28, 0.32}, {0.54, -0.55, -0.78, 0.76, -0.20, 0.20}}; int main(){ pc.baud(9600); pc.printf("SPI ADXL355 and ADXL357 Demo\n"); pc.printf("GET device ID\n"); accl.reset(); uint8_t d; d=accl.read_reg(accl.DEVID_AD); pc.printf("AD id = %x \r\n",d); d=accl.read_reg(accl.DEVID_MST); pc.printf("MEMS id = %x \r\n",d); d=accl.read_reg(accl.PARTID); pc.printf("device id = %x \r\n",d); d=accl.read_reg(accl.REVID); pc.printf("revision id = %x \r\n",d); pc.printf("GET device data [x, y, z, t] \r\n"); accl.set_power_ctl_reg(accl.MEASUREMENT); d=accl.read_reg(accl.POWER_CTL); pc.printf("power control on measurement mode = %x \r\n",d); float x, y,z; float t; // save data info a file for(int i=0; i<100; i++) { x = accl.convert(accl.scanx())*accl.axis355_sens; y = accl.convert(accl.scany())*accl.axis355_sens; z = accl.convert(accl.scanz())*accl.axis355_sens; t = 25+float(accl.scant()-1852)/(-9.05); pc.printf("%f \t %f \t %f \t %f \r\n" , x,y,z,t); wait(0.1);} // test the calibration procedure // test.matrix_reset(); // test.matrix_g(angle); // test.matrix_x(meas); // int i, j; /* output each array element's value */ /* pc.printf("power control on measurement mode = %x \r\n",d); for ( i = 0; i < 3; i++ ) { for ( j = 0; j < 12; j++ ) { pc.printf( "%f\n", i,j, test.g_matrix[i][j] ); } pc.printf("\r\n"); */ //} }