lab5
Dependencies: ADXL362
main.cpp@1:839c14f3143c, 2018-03-02 (annotated)
- Committer:
- m0t0
- Date:
- Fri Mar 02 18:06:26 2018 +0000
- Revision:
- 1:839c14f3143c
- Parent:
- 0:cf970e75e1ae
lab6;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kfricker | 0:cf970e75e1ae | 1 | #include "mbed.h" |
kfricker | 0:cf970e75e1ae | 2 | #include "ADXL362.h" |
kfricker | 0:cf970e75e1ae | 3 | DigitalOut led1(LED1); |
kfricker | 0:cf970e75e1ae | 4 | |
kfricker | 0:cf970e75e1ae | 5 | // Interface pulled from ADXL362.cpp |
kfricker | 0:cf970e75e1ae | 6 | // ADXL362::ADXL362(PinName CS, PinName MOSI, PinName MISO, PinName SCK) : |
kfricker | 0:cf970e75e1ae | 7 | ADXL362 adxl362(PA_0,PA_7,PA_6,PA_1); |
kfricker | 0:cf970e75e1ae | 8 | |
m0t0 | 1:839c14f3143c | 9 | |
m0t0 | 1:839c14f3143c | 10 | |
kfricker | 0:cf970e75e1ae | 11 | int adxl362_reg_print(int start, int length){ |
m0t0 | 1:839c14f3143c | 12 | typedef enum { |
m0t0 | 1:839c14f3143c | 13 | DEVID_AD = 0x00, |
m0t0 | 1:839c14f3143c | 14 | DEVID_MST = 0x01, |
m0t0 | 1:839c14f3143c | 15 | PARTID = 0x02, |
m0t0 | 1:839c14f3143c | 16 | REVID = 0x03, |
m0t0 | 1:839c14f3143c | 17 | XDATA = 0x08, |
m0t0 | 1:839c14f3143c | 18 | YDATA = 0x09, |
m0t0 | 1:839c14f3143c | 19 | ZDATA = 0x0A, |
m0t0 | 1:839c14f3143c | 20 | STATUS = 0x0B, |
m0t0 | 1:839c14f3143c | 21 | FIFO_ENTRIES_L = 0x0C, |
m0t0 | 1:839c14f3143c | 22 | FIFO_ENTRIES_H = 0x0D, |
m0t0 | 1:839c14f3143c | 23 | XDATA_L = 0x0E, |
m0t0 | 1:839c14f3143c | 24 | XDATA_H = 0x0F, |
m0t0 | 1:839c14f3143c | 25 | YDATA_L = 0x10, |
m0t0 | 1:839c14f3143c | 26 | YDATA_H = 0x11, |
m0t0 | 1:839c14f3143c | 27 | ZDATA_L = 0x12, |
m0t0 | 1:839c14f3143c | 28 | ZDATA_H = 0x13, |
m0t0 | 1:839c14f3143c | 29 | TEMP_L = 0x14, |
m0t0 | 1:839c14f3143c | 30 | TEMP_H = 0x15, |
m0t0 | 1:839c14f3143c | 31 | // Reserved = 0x16; |
m0t0 | 1:839c14f3143c | 32 | // Reserved = 0x17; |
m0t0 | 1:839c14f3143c | 33 | SOFT_RESET = 0x1F, |
m0t0 | 1:839c14f3143c | 34 | THRESH_ACT_L = 0x20, |
m0t0 | 1:839c14f3143c | 35 | THRESH_ACT_H = 0x21, |
m0t0 | 1:839c14f3143c | 36 | TIME_ACT = 0x22, |
m0t0 | 1:839c14f3143c | 37 | THRESH_INACT_L = 0x23, |
m0t0 | 1:839c14f3143c | 38 | THRESH_INACT_H = 0x24, |
m0t0 | 1:839c14f3143c | 39 | TIME_INACT_L = 0x25, |
m0t0 | 1:839c14f3143c | 40 | TIME_INACT_H = 0x26, |
m0t0 | 1:839c14f3143c | 41 | ACT_INACT_CTL = 0x27, |
m0t0 | 1:839c14f3143c | 42 | FIFO_CONTROL = 0x28, |
m0t0 | 1:839c14f3143c | 43 | FIFO_SAMPLES = 0x29, |
m0t0 | 1:839c14f3143c | 44 | INTMAP1 = 0x2A, |
m0t0 | 1:839c14f3143c | 45 | INTMAP2 = 0x2B, |
m0t0 | 1:839c14f3143c | 46 | FILTER_CTL = 0x2C, |
m0t0 | 1:839c14f3143c | 47 | POWER_CTL = 0x2D, |
m0t0 | 1:839c14f3143c | 48 | SELF_TEST = 0x2E, |
m0t0 | 1:839c14f3143c | 49 | } ADXL362_register_t; |
m0t0 | 1:839c14f3143c | 50 | |
m0t0 | 1:839c14f3143c | 51 | char *regnames[34] = {"DEVID_AD","DEVID_MST","PARTID","REVID","XDATA","YDATA","ZDATA","STATUS","FIFO_ENTRIES_L", |
m0t0 | 1:839c14f3143c | 52 | "FIFO_ENTRIES_H","XDATA_L","XDATA_H","YDATA_L","YDATA_H","ZDATA_L","ZDATA_H","TEMP_L", |
m0t0 | 1:839c14f3143c | 53 | "TEMP_H","SOFT_RESET","THRESH_ACT_L","THRESH_ACT_H","TIME_ACT","THRESH_INACT_L","THRESH_INACT_H","TIME_INACT_L","TIME_INACT_H", |
m0t0 | 1:839c14f3143c | 54 | "ACT_INACT_CTL","FIFO_CONTROL","FIFO_SAMPLES","INTMAP1","INTMAP2","FILTER_CTL","POWER_CTL", |
m0t0 | 1:839c14f3143c | 55 | "SELF_TEST"}; |
m0t0 | 1:839c14f3143c | 56 | int val1[34] = { 0x00, 0x01,0x02,0x03,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x10,0x11,0x12,0x13,0x14,0x15,0x1F,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E}; |
m0t0 | 1:839c14f3143c | 57 | if(0x00<=start && start <=0x2E){ |
m0t0 | 1:839c14f3143c | 58 | if(length>0){ |
m0t0 | 1:839c14f3143c | 59 | int j = 0; |
m0t0 | 1:839c14f3143c | 60 | //uint8_t adreg = read_reg(ADXL362::DEVID_AD); |
m0t0 | 1:839c14f3143c | 61 | for(int x = start; x<=length; x++){ |
m0t0 | 1:839c14f3143c | 62 | int val = val1[x]; |
m0t0 | 1:839c14f3143c | 63 | switch(val){ |
m0t0 | 1:839c14f3143c | 64 | case(ADXL362::DEVID_AD): |
m0t0 | 1:839c14f3143c | 65 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x],val); |
m0t0 | 1:839c14f3143c | 66 | break; |
m0t0 | 1:839c14f3143c | 67 | case(ADXL362::DEVID_MST): |
m0t0 | 1:839c14f3143c | 68 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 69 | break; |
m0t0 | 1:839c14f3143c | 70 | case(ADXL362::PARTID): |
m0t0 | 1:839c14f3143c | 71 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 72 | break; |
m0t0 | 1:839c14f3143c | 73 | case(ADXL362::REVID): |
m0t0 | 1:839c14f3143c | 74 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 75 | break; |
m0t0 | 1:839c14f3143c | 76 | case(ADXL362::XDATA): |
m0t0 | 1:839c14f3143c | 77 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 78 | break; |
m0t0 | 1:839c14f3143c | 79 | case(ADXL362::YDATA): |
m0t0 | 1:839c14f3143c | 80 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 81 | break; |
m0t0 | 1:839c14f3143c | 82 | case(ADXL362::ZDATA): |
m0t0 | 1:839c14f3143c | 83 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 84 | break; |
m0t0 | 1:839c14f3143c | 85 | case(ADXL362::STATUS): |
m0t0 | 1:839c14f3143c | 86 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 87 | break; |
m0t0 | 1:839c14f3143c | 88 | case(ADXL362::FIFO_ENTRIES_L): |
m0t0 | 1:839c14f3143c | 89 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 90 | break; |
m0t0 | 1:839c14f3143c | 91 | case(ADXL362::FIFO_ENTRIES_H): |
m0t0 | 1:839c14f3143c | 92 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 93 | break; |
m0t0 | 1:839c14f3143c | 94 | case(ADXL362::XDATA_L): |
m0t0 | 1:839c14f3143c | 95 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 96 | break; |
m0t0 | 1:839c14f3143c | 97 | case(ADXL362::XDATA_H): |
m0t0 | 1:839c14f3143c | 98 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 99 | break; |
m0t0 | 1:839c14f3143c | 100 | case(ADXL362::YDATA_L): |
m0t0 | 1:839c14f3143c | 101 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 102 | break; |
m0t0 | 1:839c14f3143c | 103 | case(ADXL362::YDATA_H): |
m0t0 | 1:839c14f3143c | 104 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 105 | break; |
m0t0 | 1:839c14f3143c | 106 | case(ADXL362::ZDATA_L): |
m0t0 | 1:839c14f3143c | 107 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 108 | break; |
m0t0 | 1:839c14f3143c | 109 | case(ADXL362::ZDATA_H): |
m0t0 | 1:839c14f3143c | 110 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 111 | break; |
m0t0 | 1:839c14f3143c | 112 | case(ADXL362::TEMP_L): |
m0t0 | 1:839c14f3143c | 113 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 114 | break; |
m0t0 | 1:839c14f3143c | 115 | case(ADXL362::TEMP_H): |
m0t0 | 1:839c14f3143c | 116 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 117 | break; |
m0t0 | 1:839c14f3143c | 118 | case(ADXL362::SOFT_RESET): |
m0t0 | 1:839c14f3143c | 119 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 120 | break; |
m0t0 | 1:839c14f3143c | 121 | case(ADXL362::THRESH_ACT_L): |
m0t0 | 1:839c14f3143c | 122 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 123 | break; |
m0t0 | 1:839c14f3143c | 124 | case(ADXL362::THRESH_ACT_H): |
m0t0 | 1:839c14f3143c | 125 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 126 | break; |
m0t0 | 1:839c14f3143c | 127 | case(ADXL362::TIME_ACT): |
m0t0 | 1:839c14f3143c | 128 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 129 | break; |
m0t0 | 1:839c14f3143c | 130 | case(ADXL362::THRESH_INACT_L): |
m0t0 | 1:839c14f3143c | 131 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 132 | break; |
m0t0 | 1:839c14f3143c | 133 | case(ADXL362::THRESH_INACT_H): |
m0t0 | 1:839c14f3143c | 134 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 135 | break; |
m0t0 | 1:839c14f3143c | 136 | case(ADXL362::TIME_INACT_L): |
m0t0 | 1:839c14f3143c | 137 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 138 | break; |
m0t0 | 1:839c14f3143c | 139 | case(ADXL362::TIME_INACT_H): |
m0t0 | 1:839c14f3143c | 140 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 141 | break; |
m0t0 | 1:839c14f3143c | 142 | case(ADXL362::ACT_INACT_CTL): |
m0t0 | 1:839c14f3143c | 143 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 144 | break; |
m0t0 | 1:839c14f3143c | 145 | case(ADXL362::INTMAP1): |
m0t0 | 1:839c14f3143c | 146 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 147 | break; |
m0t0 | 1:839c14f3143c | 148 | case(ADXL362::INTMAP2): |
m0t0 | 1:839c14f3143c | 149 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 150 | break; |
m0t0 | 1:839c14f3143c | 151 | case(ADXL362::FILTER_CTL): |
m0t0 | 1:839c14f3143c | 152 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 153 | break; |
m0t0 | 1:839c14f3143c | 154 | case(ADXL362::POWER_CTL): |
m0t0 | 1:839c14f3143c | 155 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 156 | break; |
m0t0 | 1:839c14f3143c | 157 | case(ADXL362::SELF_TEST): |
m0t0 | 1:839c14f3143c | 158 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 159 | break; |
m0t0 | 1:839c14f3143c | 160 | case(ADXL362::FIFO_CONTROL): |
m0t0 | 1:839c14f3143c | 161 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 162 | break; |
m0t0 | 1:839c14f3143c | 163 | case(ADXL362::FIFO_SAMPLES): |
m0t0 | 1:839c14f3143c | 164 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 165 | break; |
m0t0 | 1:839c14f3143c | 166 | default: printf("test%0x", val); |
m0t0 | 1:839c14f3143c | 167 | } |
m0t0 | 1:839c14f3143c | 168 | j++; |
m0t0 | 1:839c14f3143c | 169 | } |
m0t0 | 1:839c14f3143c | 170 | } |
m0t0 | 1:839c14f3143c | 171 | else if(length==0){ |
m0t0 | 1:839c14f3143c | 172 | int j = 0; |
m0t0 | 1:839c14f3143c | 173 | //uint8_t adreg = read_reg(ADXL362::DEVID_AD); |
m0t0 | 1:839c14f3143c | 174 | for(int x = start; x<34; x++){ |
m0t0 | 1:839c14f3143c | 175 | int val=val1[x]; |
m0t0 | 1:839c14f3143c | 176 | //printf("> %0x: %s=%0x \n\r", x, regnames[x],val); |
m0t0 | 1:839c14f3143c | 177 | switch(val){ |
m0t0 | 1:839c14f3143c | 178 | case(ADXL362::DEVID_AD): |
m0t0 | 1:839c14f3143c | 179 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x],val); |
m0t0 | 1:839c14f3143c | 180 | break; |
m0t0 | 1:839c14f3143c | 181 | case(ADXL362::DEVID_MST): |
m0t0 | 1:839c14f3143c | 182 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 183 | break; |
m0t0 | 1:839c14f3143c | 184 | case(ADXL362::PARTID): |
m0t0 | 1:839c14f3143c | 185 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 186 | break; |
m0t0 | 1:839c14f3143c | 187 | case(ADXL362::REVID): |
m0t0 | 1:839c14f3143c | 188 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 189 | break; |
m0t0 | 1:839c14f3143c | 190 | case(ADXL362::XDATA): |
m0t0 | 1:839c14f3143c | 191 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 192 | break; |
m0t0 | 1:839c14f3143c | 193 | case(ADXL362::YDATA): |
m0t0 | 1:839c14f3143c | 194 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 195 | break; |
m0t0 | 1:839c14f3143c | 196 | case(ADXL362::ZDATA): |
m0t0 | 1:839c14f3143c | 197 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 198 | break; |
m0t0 | 1:839c14f3143c | 199 | case(ADXL362::STATUS): |
m0t0 | 1:839c14f3143c | 200 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 201 | break; |
m0t0 | 1:839c14f3143c | 202 | case(ADXL362::FIFO_ENTRIES_L): |
m0t0 | 1:839c14f3143c | 203 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 204 | break; |
m0t0 | 1:839c14f3143c | 205 | case(ADXL362::FIFO_ENTRIES_H): |
m0t0 | 1:839c14f3143c | 206 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 207 | break; |
m0t0 | 1:839c14f3143c | 208 | case(ADXL362::XDATA_L): |
m0t0 | 1:839c14f3143c | 209 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 210 | break; |
m0t0 | 1:839c14f3143c | 211 | case(ADXL362::XDATA_H): |
m0t0 | 1:839c14f3143c | 212 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 213 | break; |
m0t0 | 1:839c14f3143c | 214 | case(ADXL362::YDATA_L): |
m0t0 | 1:839c14f3143c | 215 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 216 | break; |
m0t0 | 1:839c14f3143c | 217 | case(ADXL362::YDATA_H): |
m0t0 | 1:839c14f3143c | 218 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 219 | break; |
m0t0 | 1:839c14f3143c | 220 | case(ADXL362::ZDATA_L): |
m0t0 | 1:839c14f3143c | 221 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 222 | break; |
m0t0 | 1:839c14f3143c | 223 | case(ADXL362::ZDATA_H): |
m0t0 | 1:839c14f3143c | 224 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 225 | break; |
m0t0 | 1:839c14f3143c | 226 | case(ADXL362::TEMP_L): |
m0t0 | 1:839c14f3143c | 227 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 228 | break; |
m0t0 | 1:839c14f3143c | 229 | case(ADXL362::TEMP_H): |
m0t0 | 1:839c14f3143c | 230 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 231 | break; |
m0t0 | 1:839c14f3143c | 232 | case(ADXL362::SOFT_RESET): |
m0t0 | 1:839c14f3143c | 233 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 234 | break; |
m0t0 | 1:839c14f3143c | 235 | case(ADXL362::THRESH_ACT_L): |
m0t0 | 1:839c14f3143c | 236 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 237 | break; |
m0t0 | 1:839c14f3143c | 238 | case(ADXL362::THRESH_ACT_H): |
m0t0 | 1:839c14f3143c | 239 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 240 | break; |
m0t0 | 1:839c14f3143c | 241 | case(ADXL362::TIME_ACT): |
m0t0 | 1:839c14f3143c | 242 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 243 | break; |
m0t0 | 1:839c14f3143c | 244 | case(ADXL362::THRESH_INACT_L): |
m0t0 | 1:839c14f3143c | 245 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 246 | break; |
m0t0 | 1:839c14f3143c | 247 | case(ADXL362::THRESH_INACT_H): |
m0t0 | 1:839c14f3143c | 248 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 249 | break; |
m0t0 | 1:839c14f3143c | 250 | case(ADXL362::TIME_INACT_L): |
m0t0 | 1:839c14f3143c | 251 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 252 | break; |
m0t0 | 1:839c14f3143c | 253 | case(ADXL362::TIME_INACT_H): |
m0t0 | 1:839c14f3143c | 254 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 255 | break; |
m0t0 | 1:839c14f3143c | 256 | case(ADXL362::ACT_INACT_CTL): |
m0t0 | 1:839c14f3143c | 257 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 258 | break; |
m0t0 | 1:839c14f3143c | 259 | case(ADXL362::INTMAP1): |
m0t0 | 1:839c14f3143c | 260 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 261 | break; |
m0t0 | 1:839c14f3143c | 262 | case(ADXL362::INTMAP2): |
m0t0 | 1:839c14f3143c | 263 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 264 | break; |
m0t0 | 1:839c14f3143c | 265 | case(ADXL362::FILTER_CTL): |
m0t0 | 1:839c14f3143c | 266 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 267 | break; |
m0t0 | 1:839c14f3143c | 268 | case(ADXL362::POWER_CTL): |
m0t0 | 1:839c14f3143c | 269 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 270 | break; |
m0t0 | 1:839c14f3143c | 271 | case(ADXL362::SELF_TEST): |
m0t0 | 1:839c14f3143c | 272 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 273 | break; |
m0t0 | 1:839c14f3143c | 274 | case(ADXL362::FIFO_CONTROL): |
m0t0 | 1:839c14f3143c | 275 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 276 | break; |
m0t0 | 1:839c14f3143c | 277 | case(ADXL362::FIFO_SAMPLES): |
m0t0 | 1:839c14f3143c | 278 | printf("0x%0x: %s=0x%0x \n\r", j, regnames[x], val); |
m0t0 | 1:839c14f3143c | 279 | break; |
m0t0 | 1:839c14f3143c | 280 | |
m0t0 | 1:839c14f3143c | 281 | default: printf("MISSING: test%0x\n\r", val); |
m0t0 | 1:839c14f3143c | 282 | } |
m0t0 | 1:839c14f3143c | 283 | j++; |
kfricker | 0:cf970e75e1ae | 284 | } |
m0t0 | 1:839c14f3143c | 285 | } |
m0t0 | 1:839c14f3143c | 286 | else{ |
m0t0 | 1:839c14f3143c | 287 | free(regnames); |
m0t0 | 1:839c14f3143c | 288 | return 1; |
m0t0 | 1:839c14f3143c | 289 | } |
m0t0 | 1:839c14f3143c | 290 | free(regnames); |
m0t0 | 1:839c14f3143c | 291 | return 0; |
m0t0 | 1:839c14f3143c | 292 | } |
m0t0 | 1:839c14f3143c | 293 | else{ |
m0t0 | 1:839c14f3143c | 294 | free(regnames); |
m0t0 | 1:839c14f3143c | 295 | return 1; |
kfricker | 0:cf970e75e1ae | 296 | } |
kfricker | 0:cf970e75e1ae | 297 | |
kfricker | 0:cf970e75e1ae | 298 | } |
kfricker | 0:cf970e75e1ae | 299 | |
m0t0 | 1:839c14f3143c | 300 | |
kfricker | 0:cf970e75e1ae | 301 | int main() { |
kfricker | 0:cf970e75e1ae | 302 | adxl362.reset(); |
kfricker | 0:cf970e75e1ae | 303 | wait_ms(600); // we need to wait at least 500ms after ADXL362 reset |
kfricker | 0:cf970e75e1ae | 304 | adxl362.set_mode(ADXL362::MEASUREMENT); |
kfricker | 0:cf970e75e1ae | 305 | int8_t x,y,z; |
kfricker | 0:cf970e75e1ae | 306 | |
kfricker | 0:cf970e75e1ae | 307 | int8_t current [3] = {0,0,0}; |
kfricker | 0:cf970e75e1ae | 308 | int8_t accel [3] = {0,0,0}; |
kfricker | 0:cf970e75e1ae | 309 | int8_t currAdd; |
kfricker | 0:cf970e75e1ae | 310 | int8_t diffAdd; |
kfricker | 0:cf970e75e1ae | 311 | float threshold = 2; |
kfricker | 0:cf970e75e1ae | 312 | float val; |
kfricker | 0:cf970e75e1ae | 313 | int knock_counter = 0; |
kfricker | 0:cf970e75e1ae | 314 | |
kfricker | 0:cf970e75e1ae | 315 | while(1) { |
kfricker | 0:cf970e75e1ae | 316 | x=adxl362.scanx_u8(); |
kfricker | 0:cf970e75e1ae | 317 | y=adxl362.scany_u8(); |
kfricker | 0:cf970e75e1ae | 318 | z=adxl362.scanz_u8(); |
kfricker | 0:cf970e75e1ae | 319 | current [0] = x; |
kfricker | 0:cf970e75e1ae | 320 | current [1] = y; |
kfricker | 0:cf970e75e1ae | 321 | current [2] = z; |
kfricker | 0:cf970e75e1ae | 322 | currAdd = abs(current[0] + current [1] + current [2]); |
kfricker | 0:cf970e75e1ae | 323 | wait_ms(10); |
kfricker | 0:cf970e75e1ae | 324 | x=adxl362.scanx_u8(); |
kfricker | 0:cf970e75e1ae | 325 | y=adxl362.scany_u8(); |
kfricker | 0:cf970e75e1ae | 326 | z=adxl362.scanz_u8(); |
kfricker | 0:cf970e75e1ae | 327 | accel[0] = x; |
kfricker | 0:cf970e75e1ae | 328 | accel[1] = y; |
kfricker | 0:cf970e75e1ae | 329 | accel[2] = z; |
kfricker | 0:cf970e75e1ae | 330 | diffAdd = abs(accel[0] + accel [1] + accel [2]); |
kfricker | 0:cf970e75e1ae | 331 | wait_ms(10); |
kfricker | 0:cf970e75e1ae | 332 | val = abs(currAdd - diffAdd); |
kfricker | 0:cf970e75e1ae | 333 | |
kfricker | 0:cf970e75e1ae | 334 | if(val > threshold){ |
m0t0 | 1:839c14f3143c | 335 | printf("\n\r A knock has been heard ma dude\r\n"); |
m0t0 | 1:839c14f3143c | 336 | printf("Knocks = %d\r\n" , knock_counter); |
kfricker | 0:cf970e75e1ae | 337 | knock_counter ++; |
kfricker | 0:cf970e75e1ae | 338 | led1 = 1; |
kfricker | 0:cf970e75e1ae | 339 | wait_ms(2000); |
kfricker | 0:cf970e75e1ae | 340 | led1 = 0; |
kfricker | 0:cf970e75e1ae | 341 | } |
kfricker | 0:cf970e75e1ae | 342 | // printf("x = %d y = %d z = %d\r\n",x,y,z); |
m0t0 | 1:839c14f3143c | 343 | //wait_ms(1000); |
kfricker | 0:cf970e75e1ae | 344 | |
m0t0 | 1:839c14f3143c | 345 | // adxl362_reg_print(0, 0); |
kfricker | 0:cf970e75e1ae | 346 | } |
kfricker | 0:cf970e75e1ae | 347 | } |