Dependencies:   mbed

Fork of ADXL345Test_for_motortest by jack zen

Committer:
jack__zen
Date:
Tue Sep 05 01:48:26 2017 +0000
Revision:
5:ff61547eaee6
Parent:
4:f5a78245f2d0
ADXL345 Test for motor

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Frederick_H 3:e4783c57bcc0 1 #include "ADXL345_I2C.h"
jack__zen 5:ff61547eaee6 2 #include "TM1638.h"
jack__zen 5:ff61547eaee6 3 #include "mbed.h"
jack__zen 5:ff61547eaee6 4 #if(1)
jack__zen 5:ff61547eaee6 5 #include "Font_7Seg.h"
screamer 0:51be560629b8 6
jack__zen 5:ff61547eaee6 7 // DisplayData_t size is 16 bytes (8 Grids @ 10 Segments)
jack__zen 5:ff61547eaee6 8
jack__zen 5:ff61547eaee6 9 TM1638::DisplayData_t all_str = {0xFF,0x00, 0xFF,0x03, 0xFF,0x03, 0xFF,0x03, 0xFF,0x03, 0xFF,0x03, 0xFF,0x03, 0xFF,0x03};
jack__zen 5:ff61547eaee6 10 TM1638::DisplayData_t cls_str = {0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00};
jack__zen 5:ff61547eaee6 11 TM1638::DisplayData_t hello_str = {C7_H,0x00, C7_E,0x00, C7_L,0x00, C7_L,0x00, C7_O,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00};
jack__zen 5:ff61547eaee6 12 TM1638::DisplayData_t ledx[] = {
jack__zen 5:ff61547eaee6 13 {C7_R,0x00, C7_A,0x00, C7_W,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, C7_X,0x00},
jack__zen 5:ff61547eaee6 14 {C7_M,0x02, C7_E,0x00, C7_A,0x00, C7_N,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, C7_X,0x00},
jack__zen 5:ff61547eaee6 15 {C7_S,0x00, C7_U,0x02, C7_M,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, C7_X,0x00},
jack__zen 5:ff61547eaee6 16 {C7_S,0x00, C7_T,0x00, C7_D,0x02, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, C7_X,0x00},
jack__zen 5:ff61547eaee6 17 {C7_1,0x00, C7_I,0x00, C7_O,0x00, 0x00,0x02, 0x00,0x00, 0x00,0x00, 0x00,0x00, C7_X,0x00},
jack__zen 5:ff61547eaee6 18 {C7_2,0x00, C7_I,0x00, C7_O,0x00, 0x00,0x00, 0x00,0x02, 0x00,0x00, 0x00,0x00, C7_X,0x00},
jack__zen 5:ff61547eaee6 19 {C7_3,0x00, C7_I,0x00, C7_O,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x02, 0x00,0x00, C7_X,0x00},
jack__zen 5:ff61547eaee6 20 {C7_1,0x00, C7_D,0x00, C7_O,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x02, C7_X,0x00},
jack__zen 5:ff61547eaee6 21 {C7_2,0x00, C7_D,0x00, C7_O,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, C7_X,0x02},
jack__zen 5:ff61547eaee6 22 };
jack__zen 5:ff61547eaee6 23 TM1638::DisplayData_t ledy[] = {
jack__zen 5:ff61547eaee6 24 {C7_R,0x00, C7_A,0x00, C7_W,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, C7_Y,0x00},
jack__zen 5:ff61547eaee6 25 {C7_M,0x02, C7_E,0x00, C7_A,0x00, C7_N,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, C7_Y,0x00},
jack__zen 5:ff61547eaee6 26 {C7_S,0x00, C7_U,0x02, C7_M,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, C7_Y,0x00},
jack__zen 5:ff61547eaee6 27 {C7_S,0x00, C7_T,0x00, C7_D,0x02, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, C7_Y,0x00},
jack__zen 5:ff61547eaee6 28 {C7_1,0x00, C7_I,0x00, C7_O,0x00, 0x00,0x02, 0x00,0x00, 0x00,0x00, 0x00,0x00, C7_Y,0x00},
jack__zen 5:ff61547eaee6 29 {C7_2,0x00, C7_I,0x00, C7_O,0x00, 0x00,0x00, 0x00,0x02, 0x00,0x00, 0x00,0x00, C7_Y,0x00},
jack__zen 5:ff61547eaee6 30 {C7_3,0x00, C7_I,0x00, C7_O,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x02, 0x00,0x00, C7_Y,0x00},
jack__zen 5:ff61547eaee6 31 {C7_1,0x00, C7_D,0x00, C7_O,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x02, C7_Y,0x00},
jack__zen 5:ff61547eaee6 32 {C7_2,0x00, C7_D,0x00, C7_O,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, C7_Y,0x02},
jack__zen 5:ff61547eaee6 33 };
jack__zen 5:ff61547eaee6 34 TM1638::DisplayData_t ledz[] = {
jack__zen 5:ff61547eaee6 35 {C7_R,0x00, C7_A,0x00, C7_W,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, C7_Z,0x00},
jack__zen 5:ff61547eaee6 36 {C7_M,0x02, C7_E,0x00, C7_A,0x00, C7_N,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, C7_Z,0x00},
jack__zen 5:ff61547eaee6 37 {C7_S,0x00, C7_U,0x02, C7_M,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, C7_Z,0x00},
jack__zen 5:ff61547eaee6 38 {C7_S,0x00, C7_T,0x00, C7_D,0x02, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, C7_Z,0x00},
jack__zen 5:ff61547eaee6 39 {C7_1,0x00, C7_I,0x00, C7_O,0x00, 0x00,0x02, 0x00,0x00, 0x00,0x00, 0x00,0x00, C7_Z,0x00},
jack__zen 5:ff61547eaee6 40 {C7_2,0x00, C7_I,0x00, C7_O,0x00, 0x00,0x00, 0x00,0x02, 0x00,0x00, 0x00,0x00, C7_Z,0x00},
jack__zen 5:ff61547eaee6 41 {C7_3,0x00, C7_I,0x00, C7_O,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x02, 0x00,0x00, C7_Z,0x00},
jack__zen 5:ff61547eaee6 42 {C7_1,0x00, C7_D,0x00, C7_O,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x02, C7_Z,0x00},
jack__zen 5:ff61547eaee6 43 {C7_2,0x00, C7_D,0x00, C7_O,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, C7_Z,0x02},
jack__zen 5:ff61547eaee6 44 };
jack__zen 5:ff61547eaee6 45
jack__zen 5:ff61547eaee6 46 TM1638::DisplayData_t animate[] = {
jack__zen 5:ff61547eaee6 47 {S7_A,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00},
jack__zen 5:ff61547eaee6 48 {0x00,0x00, S7_A,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00},
jack__zen 5:ff61547eaee6 49 {0x00,0x00, 0x00,0x00, S7_A,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00},
jack__zen 5:ff61547eaee6 50 {0x00,0x00, 0x00,0x00, 0x00,0x00, S7_A,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00},
jack__zen 5:ff61547eaee6 51 {0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, S7_A,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00},
jack__zen 5:ff61547eaee6 52 {0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, S7_A,0x00, 0x00,0x00, 0x00,0x00},
jack__zen 5:ff61547eaee6 53 {0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, S7_A,0x00, 0x00,0x00},
jack__zen 5:ff61547eaee6 54 {0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, S7_A,0x00},
jack__zen 5:ff61547eaee6 55
jack__zen 5:ff61547eaee6 56 {0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, S7_B,0x00},
jack__zen 5:ff61547eaee6 57 {0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, S7_C,0x00},
jack__zen 5:ff61547eaee6 58
jack__zen 5:ff61547eaee6 59 {0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, S7_D,0x00},
jack__zen 5:ff61547eaee6 60 {0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, S7_D,0x00, 0x00,0x00},
jack__zen 5:ff61547eaee6 61 {0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, S7_D,0x00, 0x00,0x00, 0x00,0x00},
jack__zen 5:ff61547eaee6 62 {0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, S7_D,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00},
jack__zen 5:ff61547eaee6 63 {0x00,0x00, 0x00,0x00, 0x00,0x00, S7_D,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00},
jack__zen 5:ff61547eaee6 64 {0x00,0x00, 0x00,0x00, S7_D,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00},
jack__zen 5:ff61547eaee6 65 {0x00,0x00, S7_D,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00},
jack__zen 5:ff61547eaee6 66 {S7_D,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00},
jack__zen 5:ff61547eaee6 67
jack__zen 5:ff61547eaee6 68 {S7_E,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00},
jack__zen 5:ff61547eaee6 69 {S7_F,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00},
jack__zen 5:ff61547eaee6 70 };
jack__zen 5:ff61547eaee6 71 //TM1638::DisplayData_t axis[] = {
jack__zen 5:ff61547eaee6 72 // {0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, C7_X,0x00},
jack__zen 5:ff61547eaee6 73 // {0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, C7_Y,0x00},
jack__zen 5:ff61547eaee6 74 // {0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, C7_Z,0x00},
jack__zen 5:ff61547eaee6 75 // };
jack__zen 5:ff61547eaee6 76
jack__zen 5:ff61547eaee6 77 //TM1638::DisplayData_t axis1[] = {
jack__zen 5:ff61547eaee6 78 // {C7_1,0x00, C7_X,0x00, 0x00,0x00, 0x00,0x00 ,C7_2,0x00, C7_X,0x00, 0x00,0x00, 0x00,0x00 },
jack__zen 5:ff61547eaee6 79 // {C7_1,0x00, C7_Y,0x00, 0x00,0x00, 0x00,0x00 ,C7_2,0x00, C7_X,0x00, 0x00,0x00, 0x00,0x00 },
jack__zen 5:ff61547eaee6 80 // {C7_1,0x00, C7_Z,0x00, 0x00,0x00, 0x00,0x00 ,C7_2,0x00, C7_X,0x00, 0x00,0x00, 0x00,0x00 },
jack__zen 5:ff61547eaee6 81 // };
jack__zen 5:ff61547eaee6 82 //TM1638::DisplayData_t axis2[] = {
jack__zen 5:ff61547eaee6 83 // {C7_1,0x00, C7_X,0x00, 0x00,0x00, 0x00,0x00 ,C7_2,0x00, C7_Y,0x00, 0x00,0x00, 0x00,0x00 },
jack__zen 5:ff61547eaee6 84 // {C7_1,0x00, C7_Y,0x00, 0x00,0x00, 0x00,0x00 ,C7_2,0x00, C7_Y,0x00, 0x00,0x00, 0x00,0x00 },
jack__zen 5:ff61547eaee6 85 // {C7_1,0x00, C7_Z,0x00, 0x00,0x00, 0x00,0x00 ,C7_2,0x00, C7_Y,0x00, 0x00,0x00, 0x00,0x00 },
jack__zen 5:ff61547eaee6 86 // };
jack__zen 5:ff61547eaee6 87 //TM1638::DisplayData_t axis3[] = {
jack__zen 5:ff61547eaee6 88 // {C7_1,0x00, C7_X,0x00, 0x00,0x00, 0x00,0x00 ,C7_2,0x00, C7_Z,0x00, 0x00,0x00, 0x00,0x00 },
jack__zen 5:ff61547eaee6 89 // {C7_1,0x00, C7_Y,0x00, 0x00,0x00, 0x00,0x00 ,C7_2,0x00, C7_Z,0x00, 0x00,0x00, 0x00,0x00 },
jack__zen 5:ff61547eaee6 90 // {C7_1,0x00, C7_Z,0x00, 0x00,0x00, 0x00,0x00 ,C7_2,0x00, C7_Z,0x00, 0x00,0x00, 0x00,0x00 },
jack__zen 5:ff61547eaee6 91 // };
jack__zen 5:ff61547eaee6 92
jack__zen 5:ff61547eaee6 93
jack__zen 5:ff61547eaee6 94 // KeyData_t size is 4 bytes
jack__zen 5:ff61547eaee6 95 TM1638::KeyData_t keydata;
jack__zen 5:ff61547eaee6 96
jack__zen 5:ff61547eaee6 97 //TM1638_LEDKEY8 declaration
jack__zen 5:ff61547eaee6 98 TM1638_LEDKEY8 LEDKEY8(PA_7,PA_6,PB_3, PD_14);
jack__zen 5:ff61547eaee6 99
jack__zen 5:ff61547eaee6 100
jack__zen 5:ff61547eaee6 101
jack__zen 5:ff61547eaee6 102 #endif
Frederick_H 3:e4783c57bcc0 103 ADXL345_I2C accelerometer(I2C_SDA, I2C_SCL);
Frederick_H 3:e4783c57bcc0 104 Serial pc(USBTX, USBRX);
jack__zen 5:ff61547eaee6 105 AnalogOut AO1(PA_4),AO2(PA_5);
jack__zen 5:ff61547eaee6 106 DigitalOut DO1(PG_0),DO2(PE_0);
jack__zen 5:ff61547eaee6 107 DigitalIn DI(PG_1);
Frederick_H 4:f5a78245f2d0 108 class RangeMapper
Frederick_H 4:f5a78245f2d0 109 {
Frederick_H 4:f5a78245f2d0 110 /*
Frederick_H 4:f5a78245f2d0 111 RangeMapper convert data from input range to output range
Frederick_H 4:f5a78245f2d0 112 Math formular is y_output = ratio * x_input + offset;
Frederick_H 4:f5a78245f2d0 113 */
Frederick_H 4:f5a78245f2d0 114 protected:
Frederick_H 4:f5a78245f2d0 115 double _ratio;
Frederick_H 4:f5a78245f2d0 116 double _offset;
jack__zen 5:ff61547eaee6 117 double _outrange;
Frederick_H 4:f5a78245f2d0 118 public:
Frederick_H 4:f5a78245f2d0 119 RangeMapper(double x_min, double x_max, double y_min, double y_max)
Frederick_H 4:f5a78245f2d0 120 {
Frederick_H 4:f5a78245f2d0 121 _ratio = (y_max - y_min) / (x_max - x_min);
Frederick_H 4:f5a78245f2d0 122 _offset = y_min - x_min * _ratio;
jack__zen 5:ff61547eaee6 123 _outrange = y_max - y_min;
Frederick_H 4:f5a78245f2d0 124 };
Frederick_H 4:f5a78245f2d0 125 ~RangeMapper(){};
Frederick_H 4:f5a78245f2d0 126 double getOutput(double x_input)
Frederick_H 4:f5a78245f2d0 127 {return x_input * _ratio + _offset;};
jack__zen 5:ff61547eaee6 128 void zoom(float ratio)
jack__zen 5:ff61547eaee6 129 {_ratio *= ratio;};
jack__zen 5:ff61547eaee6 130 void shift(float ratio)
jack__zen 5:ff61547eaee6 131 {_offset += _outrange * ratio ; } ;
Frederick_H 4:f5a78245f2d0 132 };
jack__zen 5:ff61547eaee6 133
screamer 0:51be560629b8 134
Frederick_H 4:f5a78245f2d0 135
Frederick_H 4:f5a78245f2d0 136 class DataProcess
Frederick_H 4:f5a78245f2d0 137 {
Frederick_H 4:f5a78245f2d0 138 protected:
Frederick_H 4:f5a78245f2d0 139 // Statistics
Frederick_H 4:f5a78245f2d0 140 int64_t _summary;
Frederick_H 4:f5a78245f2d0 141 double _squardsum; // summary (xi^2)
Frederick_H 4:f5a78245f2d0 142 int64_t _numbers;
Frederick_H 4:f5a78245f2d0 143 int64_t _max;
Frederick_H 4:f5a78245f2d0 144 int64_t _min;
Frederick_H 4:f5a78245f2d0 145 // integration, assume time interval is same
Frederick_H 4:f5a78245f2d0 146 int64_t _itg1; //1 order integration
Frederick_H 4:f5a78245f2d0 147 int64_t _itg2; //2 order integration
Frederick_H 4:f5a78245f2d0 148 int64_t _itg3; //3 order integration
Frederick_H 4:f5a78245f2d0 149 // differentiation, assume time interval is same
Frederick_H 4:f5a78245f2d0 150 int64_t _preData;
Frederick_H 4:f5a78245f2d0 151 int64_t _dif1; //1 order differentiation
Frederick_H 4:f5a78245f2d0 152 int64_t _dif2; //2 order differentiation
jack__zen 5:ff61547eaee6 153 double _absolute;
Frederick_H 4:f5a78245f2d0 154 public:
Frederick_H 4:f5a78245f2d0 155 DataProcess():
Frederick_H 4:f5a78245f2d0 156 _summary(0), _squardsum(0), _numbers(0), _max(0), _min(0),
jack__zen 5:ff61547eaee6 157 _itg1(0), _itg2(0), _itg3(0), _preData(0), _dif1(0), _dif2(0) ,_absolute(0){};
Frederick_H 4:f5a78245f2d0 158 ~DataProcess() {};
Frederick_H 4:f5a78245f2d0 159 void putData(int64_t x) {
Frederick_H 4:f5a78245f2d0 160 int64_t temp;
Frederick_H 4:f5a78245f2d0 161 if (x > _max) _max = x;
Frederick_H 4:f5a78245f2d0 162 if (x < _min) _min = x;
Frederick_H 4:f5a78245f2d0 163 _summary += x;
Frederick_H 4:f5a78245f2d0 164 _squardsum += x*x;
Frederick_H 4:f5a78245f2d0 165 _numbers ++;
jack__zen 5:ff61547eaee6 166 _itg1 += x - _summary / _numbers ;
Frederick_H 4:f5a78245f2d0 167 _itg2 += _itg1;
Frederick_H 4:f5a78245f2d0 168 _itg3 += _itg2;
Frederick_H 4:f5a78245f2d0 169 temp = _dif1;
Frederick_H 4:f5a78245f2d0 170 _dif1 = x - _preData;
Frederick_H 4:f5a78245f2d0 171 _preData = x;
Frederick_H 4:f5a78245f2d0 172 _dif2 = _dif1 - temp;
jack__zen 5:ff61547eaee6 173 if (x - _summary / _numbers >= 0) _absolute = x - _summary / _numbers;
jack__zen 5:ff61547eaee6 174 if (x - _summary / _numbers < 0) _absolute = _summary / _numbers - x ;
Frederick_H 4:f5a78245f2d0 175 };
Frederick_H 4:f5a78245f2d0 176 int64_t getSum(void) {return _summary;};
Frederick_H 4:f5a78245f2d0 177 double getMean(void) {return (double)_summary / (double)_numbers ;};
Frederick_H 4:f5a78245f2d0 178 double getStdDiv(void) {return sqrt((_squardsum - (double)_summary*_summary / (double)_numbers ) / (double)_numbers ); };
Frederick_H 4:f5a78245f2d0 179 int64_t getMax(void) {return _max; };
Frederick_H 4:f5a78245f2d0 180 int64_t getMin(void) {return _min; };
Frederick_H 4:f5a78245f2d0 181 int64_t getCount(void) {return _numbers;} ;
Frederick_H 4:f5a78245f2d0 182 int64_t getO1integration(void) {return _itg1;};
Frederick_H 4:f5a78245f2d0 183 int64_t getO2integration(void) {return _itg2;};
Frederick_H 4:f5a78245f2d0 184 int64_t getO3integration(void) {return _itg3;};
Frederick_H 4:f5a78245f2d0 185 int64_t GetO1differ(void) {return _dif1;};
Frederick_H 4:f5a78245f2d0 186 int64_t GetO2differ(void) {return _dif2;};
jack__zen 5:ff61547eaee6 187 double getabsolute(void) {return _absolute;};
Frederick_H 4:f5a78245f2d0 188 };
Frederick_H 3:e4783c57bcc0 189 int main() {
jack__zen 5:ff61547eaee6 190 int cmd =0,cmd2=0,cmd3=0,cmd4=0,t=0,tmin=1250;//get12=0;
jack__zen 5:ff61547eaee6 191 int test[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
jack__zen 5:ff61547eaee6 192
jack__zen 5:ff61547eaee6 193 //int cmd1 =0,ch1=0,ch2=0;
Frederick_H 4:f5a78245f2d0 194 char getc =0;
jack__zen 5:ff61547eaee6 195 int channel = 0, datamode= 0;//, datamode2 =9;
jack__zen 5:ff61547eaee6 196 bool output = false, mapout = true;
Frederick_H 3:e4783c57bcc0 197 pc.baud(115200);
Frederick_H 3:e4783c57bcc0 198 int readings[3] = {0, 0, 0};
jack__zen 5:ff61547eaee6 199 //RangeMapper DAC_Mapper( 0 - 1<<13, 1<<13, 0, 1);
Frederick_H 4:f5a78245f2d0 200 DataProcess dp1, dp2, dp3;
Frederick_H 4:f5a78245f2d0 201 DataProcess dp[3] = {dp1, dp2, dp3};
Frederick_H 4:f5a78245f2d0 202
Frederick_H 4:f5a78245f2d0 203
Frederick_H 4:f5a78245f2d0 204
Frederick_H 3:e4783c57bcc0 205 pc.printf("Starting ADXL345 test...\r\n");
Frederick_H 3:e4783c57bcc0 206 wait(.001);
Frederick_H 3:e4783c57bcc0 207 pc.printf("Device ID is: 0x%02x\r\n", accelerometer.getDeviceID());
jack__zen 5:ff61547eaee6 208 wait(.001);
jack__zen 5:ff61547eaee6 209 #if(1)
jack__zen 5:ff61547eaee6 210 LEDKEY8.cls();
jack__zen 5:ff61547eaee6 211 LEDKEY8.writeData(all_str);//全亮
jack__zen 5:ff61547eaee6 212 wait(0.1);
jack__zen 5:ff61547eaee6 213 LEDKEY8.setBrightness(TM1638_BRT3);
jack__zen 5:ff61547eaee6 214 wait(1);
jack__zen 5:ff61547eaee6 215 // LEDKEY8.setBrightness(TM1638_BRT0);
jack__zen 5:ff61547eaee6 216 // wait(1);
jack__zen 5:ff61547eaee6 217 // LEDKEY8.setBrightness(TM1638_BRT4);
jack__zen 5:ff61547eaee6 218 // wait(1);
jack__zen 5:ff61547eaee6 219 //LEDKEY8.cls(true);
jack__zen 5:ff61547eaee6 220 LEDKEY8.writeData(cls_str);
jack__zen 5:ff61547eaee6 221 #endif
Frederick_H 3:e4783c57bcc0 222 restart:
Frederick_H 3:e4783c57bcc0 223
Frederick_H 3:e4783c57bcc0 224 // These are here to test whether any of the initialization fails. It will print the failure
Frederick_H 3:e4783c57bcc0 225 if (accelerometer.setPowerControl(0x00)){
Frederick_H 3:e4783c57bcc0 226 pc.printf("didn't intitialize power control\r\n");
Frederick_H 3:e4783c57bcc0 227 return 0; }
Frederick_H 3:e4783c57bcc0 228 wait(.001);
Frederick_H 3:e4783c57bcc0 229
Frederick_H 3:e4783c57bcc0 230 //Full resolution, +/-16g, 4mg/LSB.
Frederick_H 3:e4783c57bcc0 231 if(accelerometer.setDataFormatControl(0x0B)){
Frederick_H 3:e4783c57bcc0 232 //Full resolution, +/-2g, 4mg/LSB.
Frederick_H 3:e4783c57bcc0 233 //if(accelerometer.setDataFormatControl(0x08)){
Frederick_H 3:e4783c57bcc0 234 pc.printf("didn't set data format\r\n");
Frederick_H 3:e4783c57bcc0 235 return 0; }
Frederick_H 3:e4783c57bcc0 236 wait(.001);
Frederick_H 3:e4783c57bcc0 237
Frederick_H 3:e4783c57bcc0 238 //3.2kHz data rate.
Frederick_H 3:e4783c57bcc0 239 if(accelerometer.setDataRate(ADXL345_3200HZ)){
Frederick_H 3:e4783c57bcc0 240 pc.printf("didn't set data rate\r\n");
Frederick_H 3:e4783c57bcc0 241 return 0; }
Frederick_H 3:e4783c57bcc0 242 wait(.001);
Frederick_H 3:e4783c57bcc0 243
Frederick_H 3:e4783c57bcc0 244 //Measurement mode.
Frederick_H 3:e4783c57bcc0 245
Frederick_H 3:e4783c57bcc0 246 if(accelerometer.setPowerControl(MeasurementMode)) {
Frederick_H 3:e4783c57bcc0 247 pc.printf("didn't set the power control to measurement\r\n");
Frederick_H 3:e4783c57bcc0 248 return 0; }
Frederick_H 3:e4783c57bcc0 249
Frederick_H 4:f5a78245f2d0 250 // pc.printf("x-axis, y-axis, z-axis\r\n");
Frederick_H 4:f5a78245f2d0 251 pc.printf("Data Commands: \r\n");
Frederick_H 4:f5a78245f2d0 252 pc.printf(" x -> x channdel \r\n");
Frederick_H 4:f5a78245f2d0 253 pc.printf(" y -> y channdel \r\n");
Frederick_H 4:f5a78245f2d0 254 pc.printf(" z -> z channdel \r\n");
Frederick_H 4:f5a78245f2d0 255 pc.printf(" o,0 -> data output on/off \r\n");
Frederick_H 4:f5a78245f2d0 256 pc.printf(" i,1 -> mapper on/off \r\n");
Frederick_H 4:f5a78245f2d0 257 pc.printf(" a -> raw data \r\n");
Frederick_H 4:f5a78245f2d0 258 pc.printf(" b -> mean \r\n");
Frederick_H 4:f5a78245f2d0 259 pc.printf(" c -> summary \r\n");
Frederick_H 4:f5a78245f2d0 260 pc.printf(" d -> variance \r\n");
Frederick_H 4:f5a78245f2d0 261 pc.printf(" e -> 1st order Integration \r\n");
Frederick_H 4:f5a78245f2d0 262 pc.printf(" f -> 2nd order Integration \r\n");
Frederick_H 4:f5a78245f2d0 263 pc.printf(" g -> 3rd order Integration \r\n");
jack__zen 5:ff61547eaee6 264 pc.printf(" h -> print Data Commands \r\n");
jack__zen 5:ff61547eaee6 265 pc.printf(" k -> 1nd order Differentiation \r\n");
jack__zen 5:ff61547eaee6 266 pc.printf(" m -> 2nd order Differentiation \r\n");
jack__zen 5:ff61547eaee6 267 pc.printf(" + -> Output Zoom In 2X \r\n");
jack__zen 5:ff61547eaee6 268 pc.printf(" - -> Output Zoom Out 2Z \r\n");
jack__zen 5:ff61547eaee6 269 pc.printf(" ^ -> shift up 1% \r\n");
jack__zen 5:ff61547eaee6 270 pc.printf(" v -> shift down 1% \r\n");
Frederick_H 4:f5a78245f2d0 271 pc.printf("Press any key to start. \r\n");
jack__zen 5:ff61547eaee6 272 //getc = pc.getc();
jack__zen 5:ff61547eaee6 273 int error_count=0;
jack__zen 5:ff61547eaee6 274 RangeMapper DAC_Mapper1( 0 - 1<<13, 1<<13, 0, 1);
jack__zen 5:ff61547eaee6 275 RangeMapper DAC_Mapper2( 0 - 1<<13, 1<<13, 0, 1);
Frederick_H 4:f5a78245f2d0 276
Frederick_H 3:e4783c57bcc0 277
Frederick_H 3:e4783c57bcc0 278 while (1) {
jack__zen 5:ff61547eaee6 279 t++;
jack__zen 5:ff61547eaee6 280 LEDKEY8.getKeys(&keydata);//130us
jack__zen 5:ff61547eaee6 281 #if(1)
jack__zen 5:ff61547eaee6 282 if(t>tmin){
jack__zen 5:ff61547eaee6 283 if (keydata[LEDKEY8_SW1_IDX] == LEDKEY8_SW1_BIT )
jack__zen 5:ff61547eaee6 284 {
jack__zen 5:ff61547eaee6 285 t=0;
jack__zen 5:ff61547eaee6 286 switch(cmd)
jack__zen 5:ff61547eaee6 287 {
jack__zen 5:ff61547eaee6 288 case 0 :pc.printf("Data procesing output switch to X channdel\r\n");cmd++;channel = 0;test[0]=C7_X;break;
jack__zen 5:ff61547eaee6 289 case 1 :pc.printf("Data procesing output switch to Y channdel\r\n");cmd++;channel = 1;test[0]=C7_Y;break;
jack__zen 5:ff61547eaee6 290 case 2 :pc.printf("Data procesing output switch to Z channdel\r\n");cmd=0;channel = 2;test[0]=C7_Z;break;
jack__zen 5:ff61547eaee6 291 default: break;
jack__zen 5:ff61547eaee6 292 }
jack__zen 5:ff61547eaee6 293 TM1638::DisplayData_t animate1={test[0],0x00, test[1],0x00, test[2],0x00,test[3],0x00, test[4],0x00,test[5],0x00, test[6],0x00,test[7],0x00};
jack__zen 5:ff61547eaee6 294 LEDKEY8.writeData(animate1);
jack__zen 5:ff61547eaee6 295 }
jack__zen 5:ff61547eaee6 296 if (keydata[LEDKEY8_SW2_IDX] == LEDKEY8_SW2_BIT )
jack__zen 5:ff61547eaee6 297 {
jack__zen 5:ff61547eaee6 298 t=0;
jack__zen 5:ff61547eaee6 299 // switch(channel)
jack__zen 5:ff61547eaee6 300 // {
jack__zen 5:ff61547eaee6 301 // case 0 :LEDKEY8.writeData(ledx[cmd2]);break;
jack__zen 5:ff61547eaee6 302 // case 1 :LEDKEY8.writeData(ledy[cmd2]);break;
jack__zen 5:ff61547eaee6 303 // case 2 :LEDKEY8.writeData(ledz[cmd2]);break;
jack__zen 5:ff61547eaee6 304 // default: break;
jack__zen 5:ff61547eaee6 305 // }
jack__zen 5:ff61547eaee6 306 switch(cmd2)
jack__zen 5:ff61547eaee6 307 {
jack__zen 5:ff61547eaee6 308 case 0 :pc.printf("CH2(PA_5): Set to raw data output.\r\n");cmd2++;test[1]=C7_R;test[2]=C7_A;test[3]=C7_W;datamode=0;break;
jack__zen 5:ff61547eaee6 309 case 1 :pc.printf("CH2(PA_5): Set to mean output.\r\n");cmd2++;datamode=1;test[1]=C7_M;test[2]=C7_E;test[3]=C7_A;break;
jack__zen 5:ff61547eaee6 310 case 2 :pc.printf("CH2(PA_5): Set to summary output.\r\n");cmd2++;datamode=2;test[1]=C7_S;test[2]=C7_U;test[3]=C7_M;break;
jack__zen 5:ff61547eaee6 311 case 3 :pc.printf("CH2(PA_5): Set to variance output.\r\n");cmd2++;datamode=3;test[1]=C7_S;test[1]=C7_T;test[3]=C7_D;break;
jack__zen 5:ff61547eaee6 312 case 4 :pc.printf("CH2(PA_5): Set to 1st order Integration output.\r\n");cmd2++;datamode=4;test[1]=C7_1;test[2]=C7_I;test[3]=C7_O;break;
jack__zen 5:ff61547eaee6 313 case 5 :pc.printf("CH2(PA_5): Set to 2nd order Integration output.\r\n");cmd2++;datamode=5;test[1]=C7_2;test[2]=C7_I;test[3]=C7_O;break;
jack__zen 5:ff61547eaee6 314 case 6 :pc.printf("CH2(PA_5): Set to 3rd order Integration output.\r\n");cmd2++;datamode=6;test[1]=C7_3;test[2]=C7_I;test[3]=C7_O;break;
jack__zen 5:ff61547eaee6 315 case 7 :pc.printf("CH2(PA_5): Set to 1st order Differentiation output.\r\n");cmd2++;datamode=7;test[1]=C7_1;test[2]=C7_D;test[3]=C7_O;break;
jack__zen 5:ff61547eaee6 316 case 8 :pc.printf("CH2(PA_5): Set to 2nd order Differentiation output.\r\n");cmd2++;datamode=8;test[1]=C7_2;test[2]=C7_D;test[3]=C7_O;break;
jack__zen 5:ff61547eaee6 317 case 9 :pc.printf("CH2(PA_5): Set to getabsolute output.\r\n");cmd2=0;datamode=9;test[1]=C7_A;test[2]=C7_B;test[3]=C7_S;break;
jack__zen 5:ff61547eaee6 318 default: break;
jack__zen 5:ff61547eaee6 319 }
jack__zen 5:ff61547eaee6 320 TM1638::DisplayData_t animate1={test[0],0x00, test[1],0x00, test[2],0x00,test[3],0x00, test[4],0x00,test[5],0x00, test[6],0x00,test[7],0x00};
jack__zen 5:ff61547eaee6 321 LEDKEY8.writeData(animate1);//340us
jack__zen 5:ff61547eaee6 322 }
jack__zen 5:ff61547eaee6 323 if (keydata[LEDKEY8_SW3_IDX] == LEDKEY8_SW3_BIT | keydata[LEDKEY8_SW4_IDX] == LEDKEY8_SW4_BIT)
jack__zen 5:ff61547eaee6 324 {
jack__zen 5:ff61547eaee6 325 if (keydata[LEDKEY8_SW3_IDX] == LEDKEY8_SW3_BIT )
jack__zen 5:ff61547eaee6 326 {
jack__zen 5:ff61547eaee6 327 t=0;
jack__zen 5:ff61547eaee6 328 cmd3++;
jack__zen 5:ff61547eaee6 329 DAC_Mapper2.zoom(2);
jack__zen 5:ff61547eaee6 330 pc.printf("Mapout zoom in.\r\n");
jack__zen 5:ff61547eaee6 331 }
jack__zen 5:ff61547eaee6 332 if (keydata[LEDKEY8_SW4_IDX] == LEDKEY8_SW4_BIT )
jack__zen 5:ff61547eaee6 333 {
jack__zen 5:ff61547eaee6 334 t=0;
jack__zen 5:ff61547eaee6 335 cmd3--;
jack__zen 5:ff61547eaee6 336 DAC_Mapper2.zoom(0.5);
jack__zen 5:ff61547eaee6 337 pc.printf("Mapout zoom out.\r\n");
jack__zen 5:ff61547eaee6 338 }
jack__zen 5:ff61547eaee6 339 test[4]=C7_Z;
jack__zen 5:ff61547eaee6 340 if(cmd3<0)
jack__zen 5:ff61547eaee6 341 {
jack__zen 5:ff61547eaee6 342 test[5]=S7_G;
jack__zen 5:ff61547eaee6 343 }
jack__zen 5:ff61547eaee6 344 else
jack__zen 5:ff61547eaee6 345 {
jack__zen 5:ff61547eaee6 346 test[5]=0;
jack__zen 5:ff61547eaee6 347 }
jack__zen 5:ff61547eaee6 348 switch(cmd3%10)
jack__zen 5:ff61547eaee6 349 {
jack__zen 5:ff61547eaee6 350 case 0 :test[7]=C7_0;break;
jack__zen 5:ff61547eaee6 351 case -1:
jack__zen 5:ff61547eaee6 352 case 1 :test[7]=C7_1;break;
jack__zen 5:ff61547eaee6 353 case -2:
jack__zen 5:ff61547eaee6 354 case 2 :test[7]=C7_2;break;
jack__zen 5:ff61547eaee6 355 case -3:
jack__zen 5:ff61547eaee6 356 case 3 :test[7]=C7_3;break;
jack__zen 5:ff61547eaee6 357 case -4:
jack__zen 5:ff61547eaee6 358 case 4 :test[7]=C7_4;break;
jack__zen 5:ff61547eaee6 359 case -5:
jack__zen 5:ff61547eaee6 360 case 5 :test[7]=C7_5;break;
jack__zen 5:ff61547eaee6 361 case -6:
jack__zen 5:ff61547eaee6 362 case 6 :test[7]=C7_6;break;
jack__zen 5:ff61547eaee6 363 case -7:
jack__zen 5:ff61547eaee6 364 case 7 :test[7]=C7_7;break;
jack__zen 5:ff61547eaee6 365 case -8:
jack__zen 5:ff61547eaee6 366 case 8 :test[7]=C7_8;break;
jack__zen 5:ff61547eaee6 367 case -9:
jack__zen 5:ff61547eaee6 368 case 9 :test[7]=C7_9;break;
jack__zen 5:ff61547eaee6 369 default: break;
jack__zen 5:ff61547eaee6 370 }
jack__zen 5:ff61547eaee6 371 switch(cmd3/10)
jack__zen 5:ff61547eaee6 372 {
jack__zen 5:ff61547eaee6 373 case 0 :test[6]=C7_0;break;
jack__zen 5:ff61547eaee6 374 case -1:
jack__zen 5:ff61547eaee6 375 case 1 :test[6]=C7_1;break;
jack__zen 5:ff61547eaee6 376 case -2:
jack__zen 5:ff61547eaee6 377 case 2 :test[6]=C7_2;break;
jack__zen 5:ff61547eaee6 378 case -3:
jack__zen 5:ff61547eaee6 379 case 3 :test[6]=C7_3;break;
jack__zen 5:ff61547eaee6 380 case -4:
jack__zen 5:ff61547eaee6 381 case 4 :test[6]=C7_4;break;
jack__zen 5:ff61547eaee6 382 case -5:
jack__zen 5:ff61547eaee6 383 case 5 :test[6]=C7_5;break;
jack__zen 5:ff61547eaee6 384 case -6:
jack__zen 5:ff61547eaee6 385 case 6 :test[6]=C7_6;break;
jack__zen 5:ff61547eaee6 386 case -7:
jack__zen 5:ff61547eaee6 387 case 7 :test[6]=C7_7;break;
jack__zen 5:ff61547eaee6 388 case -8:
jack__zen 5:ff61547eaee6 389 case 8 :test[6]=C7_8;break;
jack__zen 5:ff61547eaee6 390 case -9:
jack__zen 5:ff61547eaee6 391 case 9 :test[6]=C7_9;break;
jack__zen 5:ff61547eaee6 392 default: break;
jack__zen 5:ff61547eaee6 393 }
jack__zen 5:ff61547eaee6 394 TM1638::DisplayData_t animate1={test[0],0x00, test[1],0x00, test[2],0x00,test[3],0x00, test[4],0x00,test[5],0x00, test[6],0x00,test[7],0x00};
jack__zen 5:ff61547eaee6 395 LEDKEY8.writeData(animate1);
jack__zen 5:ff61547eaee6 396 }
jack__zen 5:ff61547eaee6 397 if(keydata[LEDKEY8_SW5_IDX] == LEDKEY8_SW5_BIT | keydata[LEDKEY8_SW6_IDX] == LEDKEY8_SW6_BIT)
Frederick_H 4:f5a78245f2d0 398 {
jack__zen 5:ff61547eaee6 399 if (keydata[LEDKEY8_SW5_IDX] == LEDKEY8_SW5_BIT )
jack__zen 5:ff61547eaee6 400 {
jack__zen 5:ff61547eaee6 401 t=0;
jack__zen 5:ff61547eaee6 402 cmd4++;
jack__zen 5:ff61547eaee6 403 DAC_Mapper2.shift(0.1) ;
jack__zen 5:ff61547eaee6 404 pc.printf("Mapout shift up.\r\n");
jack__zen 5:ff61547eaee6 405 }
jack__zen 5:ff61547eaee6 406 if (keydata[LEDKEY8_SW6_IDX] == LEDKEY8_SW6_BIT )
jack__zen 5:ff61547eaee6 407 {
jack__zen 5:ff61547eaee6 408 t=0;
jack__zen 5:ff61547eaee6 409 cmd4--;
jack__zen 5:ff61547eaee6 410 DAC_Mapper2.shift(-0.1) ;
jack__zen 5:ff61547eaee6 411 pc.printf("Mapout shift down.\r\n");
jack__zen 5:ff61547eaee6 412 }
jack__zen 5:ff61547eaee6 413 test[4
jack__zen 5:ff61547eaee6 414
jack__zen 5:ff61547eaee6 415 ]=C7_S;
jack__zen 5:ff61547eaee6 416 if(cmd4<0)
jack__zen 5:ff61547eaee6 417 {
jack__zen 5:ff61547eaee6 418 test[5]=S7_G;
jack__zen 5:ff61547eaee6 419 }
jack__zen 5:ff61547eaee6 420 else
jack__zen 5:ff61547eaee6 421 {
jack__zen 5:ff61547eaee6 422 test[5]=0;
jack__zen 5:ff61547eaee6 423 }
jack__zen 5:ff61547eaee6 424 switch(cmd4%10)
jack__zen 5:ff61547eaee6 425 {
jack__zen 5:ff61547eaee6 426 case 0 :test[7]=C7_0;break;
jack__zen 5:ff61547eaee6 427 case -1:
jack__zen 5:ff61547eaee6 428 case 1 :test[7]=C7_1;break;
jack__zen 5:ff61547eaee6 429 case -2:
jack__zen 5:ff61547eaee6 430 case 2 :test[7]=C7_2;break;
jack__zen 5:ff61547eaee6 431 case -3:
jack__zen 5:ff61547eaee6 432 case 3 :test[7]=C7_3;break;
jack__zen 5:ff61547eaee6 433 case -4:
jack__zen 5:ff61547eaee6 434 case 4 :test[7]=C7_4;break;
jack__zen 5:ff61547eaee6 435 case -5:
jack__zen 5:ff61547eaee6 436 case 5 :test[7]=C7_5;break;
jack__zen 5:ff61547eaee6 437 case -6:
jack__zen 5:ff61547eaee6 438 case 6 :test[7]=C7_6;break;
jack__zen 5:ff61547eaee6 439 case -7:
jack__zen 5:ff61547eaee6 440 case 7 :test[7]=C7_7;break;
jack__zen 5:ff61547eaee6 441 case -8:
jack__zen 5:ff61547eaee6 442 case 8 :test[7]=C7_8;break;
jack__zen 5:ff61547eaee6 443 case -9:
jack__zen 5:ff61547eaee6 444 case 9 :test[7]=C7_9;break;
jack__zen 5:ff61547eaee6 445 default: break;
jack__zen 5:ff61547eaee6 446 }
jack__zen 5:ff61547eaee6 447 switch(cmd4/10)
jack__zen 5:ff61547eaee6 448 {
jack__zen 5:ff61547eaee6 449 case 0 :test[6]=C7_0;break;
jack__zen 5:ff61547eaee6 450 case -1:
jack__zen 5:ff61547eaee6 451 case 1 :test[6]=C7_1;break;
jack__zen 5:ff61547eaee6 452 case -2:
jack__zen 5:ff61547eaee6 453 case 2 :test[6]=C7_2;break;
jack__zen 5:ff61547eaee6 454 case -3:
jack__zen 5:ff61547eaee6 455 case 3 :test[6]=C7_3;break;
jack__zen 5:ff61547eaee6 456 case -4:
jack__zen 5:ff61547eaee6 457 case 4 :test[6]=C7_4;break;
jack__zen 5:ff61547eaee6 458 case -5:
jack__zen 5:ff61547eaee6 459 case 5 :test[6]=C7_5;break;
jack__zen 5:ff61547eaee6 460 case -6:
jack__zen 5:ff61547eaee6 461 case 6 :test[6]=C7_6;break;
jack__zen 5:ff61547eaee6 462 case -7:
jack__zen 5:ff61547eaee6 463 case 7 :test[6]=C7_7;break;
jack__zen 5:ff61547eaee6 464 case -8:
jack__zen 5:ff61547eaee6 465 case 8 :test[6]=C7_8;break;
jack__zen 5:ff61547eaee6 466 case -9:
jack__zen 5:ff61547eaee6 467 case 9 :test[6]=C7_9;break;
jack__zen 5:ff61547eaee6 468 default: break;
jack__zen 5:ff61547eaee6 469 }
jack__zen 5:ff61547eaee6 470 TM1638::DisplayData_t animate1={test[0],0x00, test[1],0x00, test[2],0x00,test[3],0x00, test[4],0x00,test[5],0x00, test[6],0x00,test[7],0x00};
jack__zen 5:ff61547eaee6 471 LEDKEY8.writeData(animate1);
jack__zen 5:ff61547eaee6 472 }
jack__zen 5:ff61547eaee6 473 if (keydata[LEDKEY8_SW7_IDX] == LEDKEY8_SW7_BIT )
jack__zen 5:ff61547eaee6 474 {
jack__zen 5:ff61547eaee6 475 t=0;
jack__zen 5:ff61547eaee6 476 output=!output;
jack__zen 5:ff61547eaee6 477 pc.printf("Turn %s data output.\r\n", (output ? "On" : "Off") );
jack__zen 5:ff61547eaee6 478 }
jack__zen 5:ff61547eaee6 479 if (keydata[LEDKEY8_SW8_IDX] == LEDKEY8_SW8_BIT )
jack__zen 5:ff61547eaee6 480 {
jack__zen 5:ff61547eaee6 481 t=0;
jack__zen 5:ff61547eaee6 482 mapout=!mapout;
jack__zen 5:ff61547eaee6 483 pc.printf("Turn %s mapping output.\r\n", (mapout ? "On" : "Off") );
Frederick_H 4:f5a78245f2d0 484 }
jack__zen 5:ff61547eaee6 485
jack__zen 5:ff61547eaee6 486
jack__zen 5:ff61547eaee6 487 #endif
jack__zen 5:ff61547eaee6 488 //pc.printf("%i\r\n", pc.readable());
jack__zen 5:ff61547eaee6 489
jack__zen 5:ff61547eaee6 490 if (pc.readable())
jack__zen 5:ff61547eaee6 491 {
jack__zen 5:ff61547eaee6 492
jack__zen 5:ff61547eaee6 493 getc = pc.getc();
jack__zen 5:ff61547eaee6 494 pc.format(8);
jack__zen 5:ff61547eaee6 495 t=0;
jack__zen 5:ff61547eaee6 496 switch(getc)
jack__zen 5:ff61547eaee6 497 {
jack__zen 5:ff61547eaee6 498 case 'x' : channel = 0 ; pc.printf("Data procesing output switch to X channdel \r\n");test[0]=C_X; break;
jack__zen 5:ff61547eaee6 499 case 'y' : channel = 1 ; pc.printf("Data procesing output switch to Y channdel \r\n");test[0]=C_Y; break;
jack__zen 5:ff61547eaee6 500 case 'z' : channel = 2 ; pc.printf("Data procesing output switch to Z channdel \r\n");test[0]=C_Z; break;
jack__zen 5:ff61547eaee6 501 case '0' :
jack__zen 5:ff61547eaee6 502 case 'o' : output = !output ; pc.printf("Turn %s data output.\r\n", (output ? "On" : "Off") ); break;
jack__zen 5:ff61547eaee6 503 case '1' :
jack__zen 5:ff61547eaee6 504 case 'i' : mapout = !mapout ; pc.printf("Turn %s mapping output.\r\n", (mapout ? "On" : "Off") ); break;
jack__zen 5:ff61547eaee6 505 case 'a' : datamode = 0 ; pc.printf("CH2(PA_5): Set to raw data output.\r\n"); break;
jack__zen 5:ff61547eaee6 506 case 'b' : datamode = 1 ; pc.printf("CH2(PA_5): Set to mean output.\r\n"); break;
jack__zen 5:ff61547eaee6 507 case 'c' : datamode = 2 ; pc.printf("CH2(PA_5): Set to summary output.\r\n"); break;
jack__zen 5:ff61547eaee6 508 case 'd' : datamode = 3 ; pc.printf("CH2(PA_5): Set to variance output.\r\n"); break;
jack__zen 5:ff61547eaee6 509 case 'e' : datamode = 4 ; pc.printf("CH2(PA_5): Set to 1st order Integration output.\r\n"); break;
jack__zen 5:ff61547eaee6 510 case 'f' : datamode = 5 ; pc.printf("CH2(PA_5): Set to 2nd order Integration output.\r\n"); break;
jack__zen 5:ff61547eaee6 511 case 'g' : datamode = 6 ; pc.printf("CH2(PA_5): Set to 3rd order Integration output.\r\n"); break;
jack__zen 5:ff61547eaee6 512 case 'h' : datamode = 0 ; pc.printf("Data Commands: \r\n");
jack__zen 5:ff61547eaee6 513 pc.printf(" x -> x channdel \r\n");
jack__zen 5:ff61547eaee6 514 pc.printf(" y -> y channdel \r\n");
jack__zen 5:ff61547eaee6 515 pc.printf(" z -> z channdel \r\n");
jack__zen 5:ff61547eaee6 516 pc.printf(" o,0 -> data output on/off \r\n");
jack__zen 5:ff61547eaee6 517 pc.printf(" i,1 -> mapper on/off \r\n");
jack__zen 5:ff61547eaee6 518 pc.printf(" a -> raw data \r\n");
jack__zen 5:ff61547eaee6 519 pc.printf(" b -> mean \r\n");
jack__zen 5:ff61547eaee6 520 pc.printf(" c -> summary \r\n");
jack__zen 5:ff61547eaee6 521 pc.printf(" d -> variance \r\n");
jack__zen 5:ff61547eaee6 522 pc.printf(" e -> 1st order Integration \r\n");
jack__zen 5:ff61547eaee6 523 pc.printf(" f -> 2nd order Integration \r\n");
jack__zen 5:ff61547eaee6 524 pc.printf(" g -> 3rd order Integration \r\n");
jack__zen 5:ff61547eaee6 525 pc.printf(" h -> print Data Commands \r\n");
jack__zen 5:ff61547eaee6 526 pc.printf(" k -> 1nd order Differentiation \r\n");
jack__zen 5:ff61547eaee6 527 pc.printf(" m -> 2nd order Differentiation \r\n");
jack__zen 5:ff61547eaee6 528 pc.printf(" + -> Output Zoom In 2X \r\n");
jack__zen 5:ff61547eaee6 529 pc.printf(" - -> Output Zoom Out 2Z \r\n");
jack__zen 5:ff61547eaee6 530 pc.printf(" ^ -> shift up 1% \r\n");
jack__zen 5:ff61547eaee6 531 pc.printf(" v -> shift down 1% \r\n");
jack__zen 5:ff61547eaee6 532 break;
jack__zen 5:ff61547eaee6 533 case 'k' : datamode = 7 ; pc.printf("CH2(PA_5): Set to 1st order Differentiation output.\r\n"); break;
jack__zen 5:ff61547eaee6 534 case 'm' : datamode = 8 ; pc.printf("CH2(PA_5): Set to 2nd order Differentiation output.\r\n"); break;
jack__zen 5:ff61547eaee6 535 case '=' :
jack__zen 5:ff61547eaee6 536 case '+' : DAC_Mapper2.zoom(2) ; pc.printf("Mapout zoom in.\r\n"); cmd3++;break;
jack__zen 5:ff61547eaee6 537 case '-' : DAC_Mapper2.zoom(0.5) ; pc.printf("Mapout zoom out.\r\n");cmd3--; break;
jack__zen 5:ff61547eaee6 538 case '6' :
jack__zen 5:ff61547eaee6 539 case '^' : DAC_Mapper2.shift(0.01) ; pc.printf("Mapout shift up.\r\n");cmd4++; break;
jack__zen 5:ff61547eaee6 540 case 'v' : DAC_Mapper2.shift(-0.01) ; pc.printf("Mapout shift down.\r\n");cmd4--; break;
jack__zen 5:ff61547eaee6 541 default: break;
jack__zen 5:ff61547eaee6 542 }
jack__zen 5:ff61547eaee6 543 }//if (pc.readable())
jack__zen 5:ff61547eaee6 544 }//t>=tmin
jack__zen 5:ff61547eaee6 545 DO2=1;
jack__zen 5:ff61547eaee6 546 accelerometer.getOutput(readings);//220us
jack__zen 5:ff61547eaee6 547 DO2=0;
Frederick_H 3:e4783c57bcc0 548 if (( 17601 == readings[0] ) || ( 17601 == readings[1] ) || ( 17601 == readings[2] ))
Frederick_H 3:e4783c57bcc0 549 {
Frederick_H 3:e4783c57bcc0 550 error_count++;
Frederick_H 3:e4783c57bcc0 551 if (error_count>10)
Frederick_H 3:e4783c57bcc0 552 {
Frederick_H 3:e4783c57bcc0 553 accelerometer.setPowerControl(0);
Frederick_H 3:e4783c57bcc0 554 pc.printf("Sensor Halt!\r\n");
Frederick_H 3:e4783c57bcc0 555 goto restart;
Frederick_H 3:e4783c57bcc0 556 }
Frederick_H 3:e4783c57bcc0 557 }
jack__zen 5:ff61547eaee6 558 else
Frederick_H 3:e4783c57bcc0 559 {
Frederick_H 4:f5a78245f2d0 560 double mapdata;
Frederick_H 4:f5a78245f2d0 561 error_count = 0;
jack__zen 5:ff61547eaee6 562 int i;
jack__zen 5:ff61547eaee6 563 for (i = 0; i < 3; i++)
jack__zen 5:ff61547eaee6 564 {
jack__zen 5:ff61547eaee6 565 readings[i] = (int16_t) readings[i];
jack__zen 5:ff61547eaee6 566 dp[i].putData(readings[i]);
jack__zen 5:ff61547eaee6 567 }
jack__zen 5:ff61547eaee6 568 if (output)//output
Frederick_H 4:f5a78245f2d0 569 {
jack__zen 5:ff61547eaee6 570
jack__zen 5:ff61547eaee6 571 switch (datamode)
jack__zen 5:ff61547eaee6 572 {
jack__zen 5:ff61547eaee6 573 case 0: pc.printf("RAW: %i, %i, %i\r\n", (int16_t)readings[0], (int16_t)readings[1], (int16_t)readings[2]);break;
Frederick_H 4:f5a78245f2d0 574 //case 0: mapdata = readings[channel]; pc.printf("RAW: %i, %i, %i\r\n", readings[0], readings[1], readings[2]); break;
jack__zen 5:ff61547eaee6 575 case 1: pc.printf("MEAN: %f, %f, %f\r\n", dp[0].getMean(), dp[1].getMean(), dp[2].getMean() ); break;
jack__zen 5:ff61547eaee6 576 case 2: pc.printf("SUM: %jd, %jd, %jd\r\n", dp[0].getSum(), dp[1].getSum(), dp[2].getSum() ); break;
jack__zen 5:ff61547eaee6 577 case 3: pc.printf("STD: %f, %f, %f\r\n", dp[0].getStdDiv(), dp[1].getStdDiv(), dp[2].getStdDiv() ); break;
jack__zen 5:ff61547eaee6 578 case 4: pc.printf("1ITG: %jd, %jd, %jd\r\n", dp[0].getO1integration(), dp[1].getO1integration(), dp[2].getO1integration() ); break;
jack__zen 5:ff61547eaee6 579 case 5: pc.printf("2ITG: %jd, %jd, %jd\r\n", dp[0].getO2integration(), dp[1].getO2integration(), dp[2].getO2integration() ); break;
jack__zen 5:ff61547eaee6 580 case 6: pc.printf("3ITG: %jd, %jd, %jd\r\n", dp[0].getO3integration(), dp[1].getO3integration(), dp[2].getO3integration() ); break;
jack__zen 5:ff61547eaee6 581 case 7: pc.printf("1DIF: %jd, %jd, %jd\r\n", dp[0].GetO1differ(), dp[1].GetO1differ(), dp[2].GetO1differ() ); break;
jack__zen 5:ff61547eaee6 582 case 8: pc.printf("2DIF: %jd, %jd, %jd\r\n", dp[0].GetO2differ(), dp[1].GetO2differ(), dp[2].GetO2differ() ); break;
jack__zen 5:ff61547eaee6 583 case 9: pc.printf("2DIF: %jd, %jd, %jd\r\n", dp[0].getabsolute(), dp[1].GetO2differ(), dp[2].GetO2differ() ); break;
jack__zen 5:ff61547eaee6 584 default: break;
jack__zen 5:ff61547eaee6 585 }
jack__zen 5:ff61547eaee6 586 }
jack__zen 5:ff61547eaee6 587
jack__zen 5:ff61547eaee6 588 AO1=DAC_Mapper1.getOutput(readings[channel]);
jack__zen 5:ff61547eaee6 589
jack__zen 5:ff61547eaee6 590 if (mapout)
jack__zen 5:ff61547eaee6 591 {
jack__zen 5:ff61547eaee6 592 //double mapdata;
jack__zen 5:ff61547eaee6 593 switch (datamode)
jack__zen 5:ff61547eaee6 594 {
jack__zen 5:ff61547eaee6 595 case 0: mapdata = readings[channel]; break;
jack__zen 5:ff61547eaee6 596 case 1: mapdata = dp[channel].getMean(); break;
jack__zen 5:ff61547eaee6 597 case 2: mapdata = dp[channel].getSum(); break;
jack__zen 5:ff61547eaee6 598 case 3: mapdata = dp[channel].getStdDiv(); break;
jack__zen 5:ff61547eaee6 599 case 4: mapdata = dp[channel].getO1integration(); break;
jack__zen 5:ff61547eaee6 600 case 5: mapdata = dp[channel].getO2integration(); break;
jack__zen 5:ff61547eaee6 601 case 6: mapdata = dp[channel].getO3integration(); break;
jack__zen 5:ff61547eaee6 602 case 7: mapdata = dp[channel].GetO1differ(); break;
jack__zen 5:ff61547eaee6 603 case 8: mapdata = dp[channel].GetO2differ(); break;
jack__zen 5:ff61547eaee6 604 case 9: mapdata = dp[channel].getabsolute(); break;
jack__zen 5:ff61547eaee6 605 default: mapdata = 0; break;
jack__zen 5:ff61547eaee6 606 }
jack__zen 5:ff61547eaee6 607 // pc.printf("MAPPING OUTPUT: %jd\r\n", DAC_Mapper2.getOutput(mapdata) );
jack__zen 5:ff61547eaee6 608
jack__zen 5:ff61547eaee6 609 AO2=DAC_Mapper2.getOutput(mapdata);
jack__zen 5:ff61547eaee6 610
Frederick_H 4:f5a78245f2d0 611 }
jack__zen 5:ff61547eaee6 612 else
jack__zen 5:ff61547eaee6 613 {
jack__zen 5:ff61547eaee6 614 AO2=DAC_Mapper2.getOutput(0);
jack__zen 5:ff61547eaee6 615 }
jack__zen 5:ff61547eaee6 616
Frederick_H 3:e4783c57bcc0 617 }
jack__zen 5:ff61547eaee6 618
Frederick_H 3:e4783c57bcc0 619 }
Frederick_H 3:e4783c57bcc0 620 }