CPS-Lab* / Mbed 2 deprecated labseven

Dependencies:   ADXL362 Lab7 mbed

Committer:
dprowe
Date:
Fri Feb 23 17:35:16 2018 +0000
Revision:
3:5f7286858dd0
Parent:
1:ed3c12662b08
Child:
7:ff64fb98ac1b
lab6 (real one)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dprowe 3:5f7286858dd0 1 #include "mbed.h"
dprowe 3:5f7286858dd0 2 #include "ADXL362.h"
madfain 0:db770a1bef64 3 #include <stdio.h>
madfain 0:db770a1bef64 4 #include <stdlib.h>
madfain 0:db770a1bef64 5
dprowe 3:5f7286858dd0 6 DigitalOut myled(LED1);
dprowe 3:5f7286858dd0 7 ADXL362 adxl362(PA_0,PA_7,PA_6,PA_1);
madfain 0:db770a1bef64 8
dprowe 3:5f7286858dd0 9 int adxl362_reg_print(int start, int length) {
dprowe 3:5f7286858dd0 10 int rvalue = 0;
dprowe 3:5f7286858dd0 11 rvalue = adxl362.read_reg(ADXL362::DEVID_AD);
dprowe 3:5f7286858dd0 12 if(rvalue!=0xAD){
dprowe 3:5f7286858dd0 13 printf("value is %X\n\r",rvalue);
dprowe 3:5f7286858dd0 14 printf("error\n\r");
dprowe 3:5f7286858dd0 15 return -1;
dprowe 3:5f7286858dd0 16 }
dprowe 3:5f7286858dd0 17 else if(!(0 <= start && start < 46)){
dprowe 3:5f7286858dd0 18 printf("error\n\r");
dprowe 3:5f7286858dd0 19 return -1;
dprowe 3:5f7286858dd0 20 }
dprowe 3:5f7286858dd0 21 else if (!(length >= 0)){
dprowe 3:5f7286858dd0 22 printf("error\n\r");
dprowe 3:5f7286858dd0 23 return -1;
dprowe 3:5f7286858dd0 24 }
dprowe 3:5f7286858dd0 25 int i = 0;
madfain 0:db770a1bef64 26
dprowe 3:5f7286858dd0 27 if (length!=0){
dprowe 3:5f7286858dd0 28 for (i = start; i < start+length; i++){
dprowe 3:5f7286858dd0 29 switch(i){
dprowe 3:5f7286858dd0 30 case 0 :
dprowe 3:5f7286858dd0 31 rvalue = adxl362.read_reg(ADXL362::DEVID_AD);
dprowe 3:5f7286858dd0 32 printf("0x00: DEVID_AD = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 33 break;
dprowe 3:5f7286858dd0 34 case 1 :
dprowe 3:5f7286858dd0 35 rvalue = adxl362.read_reg(ADXL362::DEVID_MST);
dprowe 3:5f7286858dd0 36 printf("0x01: DEVID_MST = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 37 break;
dprowe 3:5f7286858dd0 38 case 2 :
dprowe 3:5f7286858dd0 39 rvalue = adxl362.read_reg(ADXL362::PARTID);
dprowe 3:5f7286858dd0 40 printf("0x02: PARTID = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 41 break;
dprowe 3:5f7286858dd0 42 case 3 :
dprowe 3:5f7286858dd0 43 rvalue = adxl362.read_reg(ADXL362::REVID);
dprowe 3:5f7286858dd0 44 printf("0x03: REVID = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 45 case 4 :
dprowe 3:5f7286858dd0 46 rvalue = adxl362.read_reg(ADXL362::XDATA);
dprowe 3:5f7286858dd0 47 printf("0x08: XDATA = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 48 break;
dprowe 3:5f7286858dd0 49 case 5 :
dprowe 3:5f7286858dd0 50 rvalue = adxl362.read_reg(ADXL362::YDATA);
dprowe 3:5f7286858dd0 51 printf("0x09: YDATA = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 52 break;
dprowe 3:5f7286858dd0 53 case 6 :
dprowe 3:5f7286858dd0 54 rvalue = adxl362.read_reg(ADXL362::ZDATA);
dprowe 3:5f7286858dd0 55 printf("0x0A: ZDATA = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 56 break;
dprowe 3:5f7286858dd0 57 case 7 :
dprowe 3:5f7286858dd0 58 rvalue = adxl362.read_reg(ADXL362::STATUS);
dprowe 3:5f7286858dd0 59 printf("0x0B: STATUS = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 60 break;
dprowe 3:5f7286858dd0 61 case 8 :
dprowe 3:5f7286858dd0 62 rvalue = adxl362.read_reg(ADXL362::FIFO_ENTRIES_L);
dprowe 3:5f7286858dd0 63 printf("0x0C: FIFO_ENTRIES_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 64 break;
dprowe 3:5f7286858dd0 65 case 9 :
dprowe 3:5f7286858dd0 66 rvalue = adxl362.read_reg(ADXL362::FIFO_ENTRIES_H);
dprowe 3:5f7286858dd0 67 printf("0x0D: FIFO_ENTRIES_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 68 break;
dprowe 3:5f7286858dd0 69 case 10 :
dprowe 3:5f7286858dd0 70 rvalue = adxl362.read_reg(ADXL362::XDATA_L);
dprowe 3:5f7286858dd0 71 printf("0x0E: XDATA_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 72 break;
dprowe 3:5f7286858dd0 73 case 11 :
dprowe 3:5f7286858dd0 74 rvalue = adxl362.read_reg(ADXL362::XDATA_H);
dprowe 3:5f7286858dd0 75 printf("0x0F: XDATA_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 76 break;
dprowe 3:5f7286858dd0 77 case 12 :
dprowe 3:5f7286858dd0 78 rvalue = adxl362.read_reg(ADXL362::YDATA_L);
dprowe 3:5f7286858dd0 79 printf("0x10: YDATA_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 80 break;
dprowe 3:5f7286858dd0 81 case 13 :
dprowe 3:5f7286858dd0 82 rvalue = adxl362.read_reg(ADXL362::YDATA_H);
dprowe 3:5f7286858dd0 83 printf("0x11: YDATA_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 84 break;
dprowe 3:5f7286858dd0 85 case 14 :
dprowe 3:5f7286858dd0 86 rvalue = adxl362.read_reg(ADXL362::ZDATA_L);
dprowe 3:5f7286858dd0 87 printf("0x12: ZDATA_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 88 break;
dprowe 3:5f7286858dd0 89 case 15 :
dprowe 3:5f7286858dd0 90 rvalue = adxl362.read_reg(ADXL362::ZDATA_H);
dprowe 3:5f7286858dd0 91 printf("0x13: ZDATA_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 92 break;
dprowe 3:5f7286858dd0 93 case 16 :
dprowe 3:5f7286858dd0 94 rvalue = adxl362.read_reg(ADXL362::TEMP_L);
dprowe 3:5f7286858dd0 95 printf("0x14: TEMP_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 96 break;
dprowe 3:5f7286858dd0 97 case 17 :
dprowe 3:5f7286858dd0 98 rvalue = adxl362.read_reg(ADXL362::TEMP_H);
dprowe 3:5f7286858dd0 99 printf("0x15: TEMP_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 100 break;
dprowe 3:5f7286858dd0 101 case 18 :
dprowe 3:5f7286858dd0 102 rvalue = adxl362.read_reg(ADXL362::SOFT_RESET);
dprowe 3:5f7286858dd0 103 printf("0x1F: SOFT_RESET = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 104 break;
dprowe 3:5f7286858dd0 105 case 19 :
dprowe 3:5f7286858dd0 106 rvalue = adxl362.read_reg(ADXL362::THRESH_ACT_L);
dprowe 3:5f7286858dd0 107 printf("0x20: THRESH_ACT_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 108 break;
dprowe 3:5f7286858dd0 109 case 20 :
dprowe 3:5f7286858dd0 110 rvalue = adxl362.read_reg(ADXL362::THRESH_ACT_H);
dprowe 3:5f7286858dd0 111 printf("0x21: THRESH_ACT_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 112 break;
dprowe 3:5f7286858dd0 113 case 21 :
dprowe 3:5f7286858dd0 114 rvalue = adxl362.read_reg(ADXL362::TIME_ACT);
dprowe 3:5f7286858dd0 115 printf("0x22: TIME_ACT = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 116 break;
dprowe 3:5f7286858dd0 117 case 22 :
dprowe 3:5f7286858dd0 118 rvalue = adxl362.read_reg(ADXL362::THRESH_INACT_L);
dprowe 3:5f7286858dd0 119 printf("0x23: THRESH_INACT_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 120 break;
dprowe 3:5f7286858dd0 121 case 23 :
dprowe 3:5f7286858dd0 122 rvalue = adxl362.read_reg(ADXL362::THRESH_INACT_H);
dprowe 3:5f7286858dd0 123 printf("0x24: THRESH_INACT_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 124 break;
dprowe 3:5f7286858dd0 125 case 24 :
dprowe 3:5f7286858dd0 126 rvalue = adxl362.read_reg(ADXL362::TIME_INACT_L);
dprowe 3:5f7286858dd0 127 printf("0x25: TIME_INACT_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 128 break;
dprowe 3:5f7286858dd0 129 case 25 :
dprowe 3:5f7286858dd0 130 rvalue = adxl362.read_reg(ADXL362::TIME_INACT_H);
dprowe 3:5f7286858dd0 131 printf("0x26: TIME_INACT_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 132 break;
dprowe 3:5f7286858dd0 133 case 26 :
dprowe 3:5f7286858dd0 134 rvalue = adxl362.read_reg(ADXL362::ACT_INACT_CTL);
dprowe 3:5f7286858dd0 135 printf("0x27: ACT_INACT_CTL = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 136 break;
dprowe 3:5f7286858dd0 137 case 27 :
dprowe 3:5f7286858dd0 138 rvalue = adxl362.read_reg(ADXL362::FIFO_CONTROL);
dprowe 3:5f7286858dd0 139 printf("0x28: FIFO_CONTROL = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 140 break;
dprowe 3:5f7286858dd0 141 case 28 :
dprowe 3:5f7286858dd0 142 rvalue = adxl362.read_reg(ADXL362::FIFO_SAMPLES);
dprowe 3:5f7286858dd0 143 printf("0x29: FIFO_SAMPLES = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 144 break;
dprowe 3:5f7286858dd0 145 case 29 :
dprowe 3:5f7286858dd0 146 rvalue = adxl362.read_reg(ADXL362::INTMAP1);
dprowe 3:5f7286858dd0 147 printf("0x2A: INTMAP1 = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 148 break;
dprowe 3:5f7286858dd0 149 case 30 :
dprowe 3:5f7286858dd0 150 rvalue = adxl362.read_reg(ADXL362::INTMAP2);
dprowe 3:5f7286858dd0 151 printf("0x2B: INTMAP2 = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 152 break;
dprowe 3:5f7286858dd0 153 case 31 :
dprowe 3:5f7286858dd0 154 rvalue = adxl362.read_reg(ADXL362::FILTER_CTL);
dprowe 3:5f7286858dd0 155 printf("0x2C: FILTER_CTL = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 156 break;
dprowe 3:5f7286858dd0 157 case 32 :
dprowe 3:5f7286858dd0 158 rvalue = adxl362.read_reg(ADXL362::POWER_CTL);
dprowe 3:5f7286858dd0 159 printf("0x2D: POWER_CTL = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 160 break;
dprowe 3:5f7286858dd0 161 case 33 :
dprowe 3:5f7286858dd0 162 rvalue = adxl362.read_reg(ADXL362::SELF_TEST);
dprowe 3:5f7286858dd0 163 printf("0x2E: SELF_TEST = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 164 break;
dprowe 3:5f7286858dd0 165 default :
dprowe 3:5f7286858dd0 166 printf("ERROR: NO REGISTER HERE\n\r");
dprowe 3:5f7286858dd0 167 break;
dprowe 3:5f7286858dd0 168 }
dprowe 3:5f7286858dd0 169 }
madfain 0:db770a1bef64 170 }
dprowe 3:5f7286858dd0 171 else {
dprowe 3:5f7286858dd0 172 for (i = 0; i < 34; i++){
dprowe 3:5f7286858dd0 173 switch(i){
dprowe 3:5f7286858dd0 174 case 0 :
dprowe 3:5f7286858dd0 175 rvalue = adxl362.read_reg(ADXL362::DEVID_AD);
dprowe 3:5f7286858dd0 176 printf("0x00: DEVID_AD = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 177 break;
dprowe 3:5f7286858dd0 178 case 1 :
dprowe 3:5f7286858dd0 179 rvalue = adxl362.read_reg(ADXL362::DEVID_MST);
dprowe 3:5f7286858dd0 180 printf("0x01: DEVID_MST = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 181 break;
dprowe 3:5f7286858dd0 182 case 2 :
dprowe 3:5f7286858dd0 183 rvalue = adxl362.read_reg(ADXL362::PARTID);
dprowe 3:5f7286858dd0 184 printf("0x02: PARTID = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 185 break;
dprowe 3:5f7286858dd0 186 case 3 :
dprowe 3:5f7286858dd0 187 rvalue = adxl362.read_reg(ADXL362::REVID);
dprowe 3:5f7286858dd0 188 printf("0x03: REVID = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 189 break;
dprowe 3:5f7286858dd0 190 case 4 :
dprowe 3:5f7286858dd0 191 rvalue = adxl362.read_reg(ADXL362::XDATA);
dprowe 3:5f7286858dd0 192 printf("0x08: XDATA = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 193 break;
dprowe 3:5f7286858dd0 194 case 5 :
dprowe 3:5f7286858dd0 195 rvalue = adxl362.read_reg(ADXL362::YDATA);
dprowe 3:5f7286858dd0 196 printf("0x09: YDATA = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 197 break;
dprowe 3:5f7286858dd0 198 case 6 :
dprowe 3:5f7286858dd0 199 rvalue = adxl362.read_reg(ADXL362::ZDATA);
dprowe 3:5f7286858dd0 200 printf("0x0A: ZDATA = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 201 break;
dprowe 3:5f7286858dd0 202 case 7 :
dprowe 3:5f7286858dd0 203 rvalue = adxl362.read_reg(ADXL362::STATUS);
dprowe 3:5f7286858dd0 204 printf("0x0B: STATUS = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 205 break;
dprowe 3:5f7286858dd0 206 case 8 :
dprowe 3:5f7286858dd0 207 rvalue = adxl362.read_reg(ADXL362::FIFO_ENTRIES_L);
dprowe 3:5f7286858dd0 208 printf("0x0C: FIFO_ENTRIES_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 209 break;
dprowe 3:5f7286858dd0 210 case 9 :
dprowe 3:5f7286858dd0 211 rvalue = adxl362.read_reg(ADXL362::FIFO_ENTRIES_H);
dprowe 3:5f7286858dd0 212 printf("0x0D: FIFO_ENTRIES_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 213 break;
dprowe 3:5f7286858dd0 214 case 10 :
dprowe 3:5f7286858dd0 215 rvalue = adxl362.read_reg(ADXL362::XDATA_L);
dprowe 3:5f7286858dd0 216 printf("0x0E: XDATA_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 217 break;
dprowe 3:5f7286858dd0 218 case 11 :
dprowe 3:5f7286858dd0 219 rvalue = adxl362.read_reg(ADXL362::XDATA_H);
dprowe 3:5f7286858dd0 220 printf("0x0F: XDATA_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 221 break;
dprowe 3:5f7286858dd0 222 case 12 :
dprowe 3:5f7286858dd0 223 rvalue = adxl362.read_reg(ADXL362::YDATA_L);
dprowe 3:5f7286858dd0 224 printf("0x10: YDATA_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 225 break;
dprowe 3:5f7286858dd0 226 case 13 :
dprowe 3:5f7286858dd0 227 rvalue = adxl362.read_reg(ADXL362::YDATA_H);
dprowe 3:5f7286858dd0 228 printf("0x11: YDATA_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 229 break;
dprowe 3:5f7286858dd0 230 case 14 :
dprowe 3:5f7286858dd0 231 rvalue = adxl362.read_reg(ADXL362::ZDATA_L);
dprowe 3:5f7286858dd0 232 printf("0x12: ZDATA_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 233 break;
dprowe 3:5f7286858dd0 234 case 15 :
dprowe 3:5f7286858dd0 235 rvalue = adxl362.read_reg(ADXL362::ZDATA_H);
dprowe 3:5f7286858dd0 236 printf("0x13: ZDATA_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 237 break;
dprowe 3:5f7286858dd0 238 case 16 :
dprowe 3:5f7286858dd0 239 rvalue = adxl362.read_reg(ADXL362::TEMP_L);
dprowe 3:5f7286858dd0 240 printf("0x14: TEMP_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 241 break;
dprowe 3:5f7286858dd0 242 case 17 :
dprowe 3:5f7286858dd0 243 rvalue = adxl362.read_reg(ADXL362::TEMP_H);
dprowe 3:5f7286858dd0 244 printf("0x15: TEMP_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 245 break;
dprowe 3:5f7286858dd0 246 case 18 :
dprowe 3:5f7286858dd0 247 rvalue = adxl362.read_reg(ADXL362::SOFT_RESET);
dprowe 3:5f7286858dd0 248 printf("0x1F: SOFT_RESET = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 249 break;
dprowe 3:5f7286858dd0 250 case 19 :
dprowe 3:5f7286858dd0 251 rvalue = adxl362.read_reg(ADXL362::THRESH_ACT_L);
dprowe 3:5f7286858dd0 252 printf("0x20: THRESH_ACT_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 253 break;
dprowe 3:5f7286858dd0 254 case 20 :
dprowe 3:5f7286858dd0 255 rvalue = adxl362.read_reg(ADXL362::THRESH_ACT_H);
dprowe 3:5f7286858dd0 256 printf("0x21: THRESH_ACT_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 257 break;
dprowe 3:5f7286858dd0 258 case 21 :
dprowe 3:5f7286858dd0 259 rvalue = adxl362.read_reg(ADXL362::TIME_ACT);
dprowe 3:5f7286858dd0 260 printf("0x22: TIME_ACT = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 261 break;
dprowe 3:5f7286858dd0 262 case 22 :
dprowe 3:5f7286858dd0 263 rvalue = adxl362.read_reg(ADXL362::THRESH_INACT_L);
dprowe 3:5f7286858dd0 264 printf("0x23: THRESH_INACT_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 265 break;
dprowe 3:5f7286858dd0 266 case 23 :
dprowe 3:5f7286858dd0 267 rvalue = adxl362.read_reg(ADXL362::THRESH_INACT_H);
dprowe 3:5f7286858dd0 268 printf("0x24: THRESH_INACT_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 269 break;
dprowe 3:5f7286858dd0 270 case 24 :
dprowe 3:5f7286858dd0 271 rvalue = adxl362.read_reg(ADXL362::TIME_INACT_L);
dprowe 3:5f7286858dd0 272 printf("0x25: TIME_INACT_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 273 break;
dprowe 3:5f7286858dd0 274 case 25 :
dprowe 3:5f7286858dd0 275 rvalue = adxl362.read_reg(ADXL362::TIME_INACT_H);
dprowe 3:5f7286858dd0 276 printf("0x26: TIME_INACT_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 277 break;
dprowe 3:5f7286858dd0 278 case 26 :
dprowe 3:5f7286858dd0 279 rvalue = adxl362.read_reg(ADXL362::ACT_INACT_CTL);
dprowe 3:5f7286858dd0 280 printf("0x27: ACT_INACT_CTL = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 281 break;
dprowe 3:5f7286858dd0 282 case 27 :
dprowe 3:5f7286858dd0 283 rvalue = adxl362.read_reg(ADXL362::FIFO_CONTROL);
dprowe 3:5f7286858dd0 284 printf("0x28: FIFO_CONTROL = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 285 break;
dprowe 3:5f7286858dd0 286 case 28 :
dprowe 3:5f7286858dd0 287 rvalue = adxl362.read_reg(ADXL362::FIFO_SAMPLES);
dprowe 3:5f7286858dd0 288 printf("0x29: FIFO_SAMPLES = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 289 break;
dprowe 3:5f7286858dd0 290 case 29 :
dprowe 3:5f7286858dd0 291 rvalue = adxl362.read_reg(ADXL362::INTMAP1);
dprowe 3:5f7286858dd0 292 printf("0x2A: INTMAP1 = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 293 break;
dprowe 3:5f7286858dd0 294 case 30 :
dprowe 3:5f7286858dd0 295 rvalue = adxl362.read_reg(ADXL362::INTMAP2);
dprowe 3:5f7286858dd0 296 printf("0x2B: INTMAP2 = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 297 break;
dprowe 3:5f7286858dd0 298 case 31 :
dprowe 3:5f7286858dd0 299 rvalue = adxl362.read_reg(ADXL362::FILTER_CTL);
dprowe 3:5f7286858dd0 300 printf("0x2C: FILTER_CTL = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 301 break;
dprowe 3:5f7286858dd0 302 case 32 :
dprowe 3:5f7286858dd0 303 rvalue = adxl362.read_reg(ADXL362::POWER_CTL);
dprowe 3:5f7286858dd0 304 printf("0x2D: POWER_CTL = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 305 break;
dprowe 3:5f7286858dd0 306 case 33 :
dprowe 3:5f7286858dd0 307 rvalue = adxl362.read_reg(ADXL362::SELF_TEST);
dprowe 3:5f7286858dd0 308 printf("0x2E: SELF_TEST = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 309 break;
dprowe 3:5f7286858dd0 310 default :
dprowe 3:5f7286858dd0 311 printf("ERROR: NO REGISTER HERE\n\r");
dprowe 3:5f7286858dd0 312 break;
dprowe 3:5f7286858dd0 313 }
dprowe 3:5f7286858dd0 314 }
dprowe 3:5f7286858dd0 315 }
madfain 1:ed3c12662b08 316
dprowe 3:5f7286858dd0 317 return 0;
madfain 0:db770a1bef64 318 }
dprowe 3:5f7286858dd0 319
dprowe 3:5f7286858dd0 320 int blink() {
dprowe 3:5f7286858dd0 321 myled = 1; // LED is ON
dprowe 3:5f7286858dd0 322 wait(2); // 2 sec
dprowe 3:5f7286858dd0 323 myled = 0; // LED is OFF
dprowe 3:5f7286858dd0 324 return 0;
madfain 0:db770a1bef64 325 }
madfain 0:db770a1bef64 326
madfain 0:db770a1bef64 327 int main() {
dprowe 3:5f7286858dd0 328 wait_ms(600); // we need to wait at least 500ms after ADXL362 reset
dprowe 3:5f7286858dd0 329 adxl362.set_mode(ADXL362::MEASUREMENT);
dprowe 3:5f7286858dd0 330 int8_t x,y,z;
dprowe 3:5f7286858dd0 331 int8_t nx, ny, nz;
dprowe 3:5f7286858dd0 332 adxl362_reg_print(0, 0); // call register printing here
dprowe 3:5f7286858dd0 333 adxl362_reg_print(0, 5);
dprowe 3:5f7286858dd0 334 adxl362_reg_print(4, 6);
dprowe 3:5f7286858dd0 335 //while (1) {adxl362_reg_print(0, 0);} to print forever
madfain 0:db770a1bef64 336
dprowe 3:5f7286858dd0 337 int blink_c = 0;
dprowe 3:5f7286858dd0 338 x=adxl362.scanx_u8();
dprowe 3:5f7286858dd0 339 y=adxl362.scany_u8();
dprowe 3:5f7286858dd0 340 z=adxl362.scanz_u8();
dprowe 3:5f7286858dd0 341
dprowe 3:5f7286858dd0 342 while(1) { //detects knocks
dprowe 3:5f7286858dd0 343 x=adxl362.scanx_u8();
dprowe 3:5f7286858dd0 344 y=adxl362.scany_u8();
dprowe 3:5f7286858dd0 345 z=adxl362.scanz_u8();
dprowe 3:5f7286858dd0 346 wait_us(100);
dprowe 3:5f7286858dd0 347 nx=adxl362.scanx_u8();
dprowe 3:5f7286858dd0 348 ny=adxl362.scany_u8();
dprowe 3:5f7286858dd0 349 nz=adxl362.scanz_u8();
dprowe 3:5f7286858dd0 350 if ((abs(x-nx)>=4) || (abs(y-ny)>=4) || (abs(z-nz)>=4)){
dprowe 3:5f7286858dd0 351 blink_c += 1;
dprowe 3:5f7286858dd0 352 printf("number of knocks detected: %d\n\r",blink_c);
dprowe 3:5f7286858dd0 353 blink();
madfain 0:db770a1bef64 354 }
dprowe 3:5f7286858dd0 355 }
madfain 0:db770a1bef64 356 }