Final_Project
Dependencies: MMA8451Q8a SLCD mbed
Fork of SP_LCD_punch_mtr_8_v5_class by
Diff: LCD_punch_mtr8_v5.cpp
- Revision:
- 6:c2f31918cf77
- Parent:
- 5:6ec1dac45861
- Child:
- 7:6aa16a6fde70
diff -r 6ec1dac45861 -r c2f31918cf77 LCD_punch_mtr8_v5.cpp --- a/LCD_punch_mtr8_v5.cpp Sat Jan 10 16:48:10 2015 +0000 +++ b/LCD_punch_mtr8_v5.cpp Wed Jan 28 21:42:15 2015 +0000 @@ -35,6 +35,10 @@ #define REG_WHO_AM_I 0x0D #define XYZ_DATA_CFG 0x0E +#define REG_OUT_X_MSB 0x01 +#define REG_OUT_Y_MSB 0x03 +#define REG_OUT_Z_MSB 0x05 + #define MAX_2G 0x00 #define MAX_4G 0x01 #define MAX_8G 0x02 @@ -68,7 +72,7 @@ Serial pc(USBTX, USBRX); char displayTitles[NUMSTATES][LCDLEN] = {XCOMP,YCOMP,ZCOMP,MAXVECT}; float accaxisdata[NUMSTATES]; -char displayformats[NUMSTATES][LCDLEN] = {"x.%3.2f","y.%3.2f","z.%3.2f","v.%3.2f"}; +char displayformats[NUMSTATES][LCDLEN] = {"%4.0f","y.%3.2f","z.%3.2f","v.%3.2f"}; //char displayformats[NUMSTATES][LCDLEN] = {"%4.3f","%4.3f","%4.3f","%4.3f"}; void LCDMess(char *lMess, float dWait){ @@ -120,6 +124,7 @@ int outState = false; char lcdData[LCDLEN]; //buffer needs places dor decimal pt and colon uint8_t regData = MAX_4G; // test value must change after G setting + uint16_t xCounts; #ifdef PRINTDBUG pc.printf(PROGNAME); @@ -138,7 +143,7 @@ // http://cache.freescale.com/files/sensors/doc/data_sheet/MMA8451Q.pdf // See page 26 // Set 8 g max limit - acc.setGLimit(MAX_8G); // For now set to 8g + acc.setGLimit(MAX_2G); // For now set to 8g acc.readRegs(XYZ_DATA_CFG, ®Data, 1); sprintf (lcdData,"%d",regData); LCDMess(lcdData,BLINKTIME); @@ -166,6 +171,7 @@ //Get accelerometer data - tilt angles minus offset for zero mark. // No offset xAcc = abs(acc.getAccX()); + xCounts = acc.getAccAxis(REG_OUT_X_MSB); yAcc = abs(acc.getAccY()); zAcc = abs(acc.getAccZ()); // Calulate vector sum of x,y and z reading. @@ -174,7 +180,7 @@ if (vector > vMax) { vMax = vector; } - accaxisdata[XCOMPD] = xAcc; + accaxisdata[XCOMPD] = (float)xCounts; accaxisdata[YCOMPD] = yAcc; accaxisdata[ZCOMPD] = zAcc; accaxisdata[VMAXD] = vMax;