report

Dependencies:   ADXL362 Lab7 mbed

Committer:
dprowe
Date:
Fri Mar 09 17:29:27 2018 +0000
Revision:
9:1f9c70fde134
Parent:
7:ff64fb98ac1b
a

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"
dprowe 7:ff64fb98ac1b 3 #include "MPL3115A2.h"
madfain 0:db770a1bef64 4 #include <stdio.h>
madfain 0:db770a1bef64 5 #include <stdlib.h>
madfain 0:db770a1bef64 6
dprowe 7:ff64fb98ac1b 7 Serial pc(SERIAL_TX, SERIAL_RX);
dprowe 3:5f7286858dd0 8 DigitalOut myled(LED1);
dprowe 3:5f7286858dd0 9 ADXL362 adxl362(PA_0,PA_7,PA_6,PA_1);
dprowe 7:ff64fb98ac1b 10 MPL3115A2 pressure_sensor(PB_7,PB_6,0x60);
dprowe 7:ff64fb98ac1b 11 InterruptIn event(PA_4);
dprowe 7:ff64fb98ac1b 12
dprowe 7:ff64fb98ac1b 13 char *arr[] = {
dprowe 7:ff64fb98ac1b 14 "MPL_STATUS","MPL_OUT_P_MSB", "MPL_OUT_P_CSB","MPL_OUT_P_LSB","MPL_OUT_P_LSB",
dprowe 7:ff64fb98ac1b 15 "MPL_OUT_T_LSB","MPL_DR_STATUS","MPL_OUT_P_DELTA_MSB","MPL_OUT_P_DELTA_MSB",
dprowe 7:ff64fb98ac1b 16 "MPL_OUT_P_DELTA_LSB","MPL_OUT_T_DELTA_MSB","MPL_OUT_T_DELTA_LSB",
dprowe 7:ff64fb98ac1b 17 "MPL_WHO_AM_I","MPL_F_STATUS","MPL_F_DATA","MPL_F_SETUP","MPL_TIME_DLY",
dprowe 7:ff64fb98ac1b 18 "MPL_SYSMOD","MPL_INT_SOURCE","MPL_PT_DATA_CFG","MPL_BAR_IN_MSB",
dprowe 7:ff64fb98ac1b 19 "MPL_BAR_IN_LSB","MPL_P_TGT_MSB","MPL_P_TGT_LSB","MPL_T_TGT","MPL_P_WND_MSB",
dprowe 7:ff64fb98ac1b 20 "MPL_P_WND_LSB","MPL_T_WND","MPL_P_MIN_MSB","MPL_P_MIN_CSB","MPL_P_MIN_LSB",
dprowe 7:ff64fb98ac1b 21 "MPL_T_MIN_MSB", "MPL_T_MIN_LSB", "MPL_P_MAX_MSB", "MPL_P_MAX_CSB",
dprowe 7:ff64fb98ac1b 22 "MPL_P_MAX_LSB","MPL_T_MAX_MSB","MPL_T_MAX_LSB","MPL_CTRL_REG1",
dprowe 7:ff64fb98ac1b 23 "MPL_CTRL_REG2","MPL_CTRL_REG3","MPL_CTRL_REG4","MPL_CTRL_REG5",
dprowe 7:ff64fb98ac1b 24 "MPL_OFF_P","MPL_OFF_T","MPL_OFF_H"
dprowe 7:ff64fb98ac1b 25 };
dprowe 7:ff64fb98ac1b 26
madfain 0:db770a1bef64 27
dprowe 3:5f7286858dd0 28 int adxl362_reg_print(int start, int length) {
dprowe 3:5f7286858dd0 29 int rvalue = 0;
dprowe 3:5f7286858dd0 30 rvalue = adxl362.read_reg(ADXL362::DEVID_AD);
dprowe 3:5f7286858dd0 31 if(rvalue!=0xAD){
dprowe 3:5f7286858dd0 32 printf("value is %X\n\r",rvalue);
dprowe 3:5f7286858dd0 33 printf("error\n\r");
dprowe 3:5f7286858dd0 34 return -1;
dprowe 3:5f7286858dd0 35 }
dprowe 3:5f7286858dd0 36 else if(!(0 <= start && start < 46)){
dprowe 3:5f7286858dd0 37 printf("error\n\r");
dprowe 3:5f7286858dd0 38 return -1;
dprowe 3:5f7286858dd0 39 }
dprowe 3:5f7286858dd0 40 else if (!(length >= 0)){
dprowe 3:5f7286858dd0 41 printf("error\n\r");
dprowe 3:5f7286858dd0 42 return -1;
dprowe 3:5f7286858dd0 43 }
dprowe 3:5f7286858dd0 44 int i = 0;
madfain 0:db770a1bef64 45
dprowe 3:5f7286858dd0 46 if (length!=0){
dprowe 3:5f7286858dd0 47 for (i = start; i < start+length; i++){
dprowe 3:5f7286858dd0 48 switch(i){
dprowe 3:5f7286858dd0 49 case 0 :
dprowe 3:5f7286858dd0 50 rvalue = adxl362.read_reg(ADXL362::DEVID_AD);
dprowe 3:5f7286858dd0 51 printf("0x00: DEVID_AD = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 52 break;
dprowe 3:5f7286858dd0 53 case 1 :
dprowe 3:5f7286858dd0 54 rvalue = adxl362.read_reg(ADXL362::DEVID_MST);
dprowe 3:5f7286858dd0 55 printf("0x01: DEVID_MST = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 56 break;
dprowe 3:5f7286858dd0 57 case 2 :
dprowe 3:5f7286858dd0 58 rvalue = adxl362.read_reg(ADXL362::PARTID);
dprowe 3:5f7286858dd0 59 printf("0x02: PARTID = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 60 break;
dprowe 3:5f7286858dd0 61 case 3 :
dprowe 3:5f7286858dd0 62 rvalue = adxl362.read_reg(ADXL362::REVID);
dprowe 3:5f7286858dd0 63 printf("0x03: REVID = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 64 case 4 :
dprowe 3:5f7286858dd0 65 rvalue = adxl362.read_reg(ADXL362::XDATA);
dprowe 3:5f7286858dd0 66 printf("0x08: XDATA = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 67 break;
dprowe 3:5f7286858dd0 68 case 5 :
dprowe 3:5f7286858dd0 69 rvalue = adxl362.read_reg(ADXL362::YDATA);
dprowe 3:5f7286858dd0 70 printf("0x09: YDATA = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 71 break;
dprowe 3:5f7286858dd0 72 case 6 :
dprowe 3:5f7286858dd0 73 rvalue = adxl362.read_reg(ADXL362::ZDATA);
dprowe 3:5f7286858dd0 74 printf("0x0A: ZDATA = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 75 break;
dprowe 3:5f7286858dd0 76 case 7 :
dprowe 3:5f7286858dd0 77 rvalue = adxl362.read_reg(ADXL362::STATUS);
dprowe 3:5f7286858dd0 78 printf("0x0B: STATUS = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 79 break;
dprowe 3:5f7286858dd0 80 case 8 :
dprowe 3:5f7286858dd0 81 rvalue = adxl362.read_reg(ADXL362::FIFO_ENTRIES_L);
dprowe 3:5f7286858dd0 82 printf("0x0C: FIFO_ENTRIES_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 83 break;
dprowe 3:5f7286858dd0 84 case 9 :
dprowe 3:5f7286858dd0 85 rvalue = adxl362.read_reg(ADXL362::FIFO_ENTRIES_H);
dprowe 3:5f7286858dd0 86 printf("0x0D: FIFO_ENTRIES_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 87 break;
dprowe 3:5f7286858dd0 88 case 10 :
dprowe 3:5f7286858dd0 89 rvalue = adxl362.read_reg(ADXL362::XDATA_L);
dprowe 3:5f7286858dd0 90 printf("0x0E: XDATA_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 91 break;
dprowe 3:5f7286858dd0 92 case 11 :
dprowe 3:5f7286858dd0 93 rvalue = adxl362.read_reg(ADXL362::XDATA_H);
dprowe 3:5f7286858dd0 94 printf("0x0F: XDATA_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 95 break;
dprowe 3:5f7286858dd0 96 case 12 :
dprowe 3:5f7286858dd0 97 rvalue = adxl362.read_reg(ADXL362::YDATA_L);
dprowe 3:5f7286858dd0 98 printf("0x10: YDATA_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 99 break;
dprowe 3:5f7286858dd0 100 case 13 :
dprowe 3:5f7286858dd0 101 rvalue = adxl362.read_reg(ADXL362::YDATA_H);
dprowe 3:5f7286858dd0 102 printf("0x11: YDATA_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 103 break;
dprowe 3:5f7286858dd0 104 case 14 :
dprowe 3:5f7286858dd0 105 rvalue = adxl362.read_reg(ADXL362::ZDATA_L);
dprowe 3:5f7286858dd0 106 printf("0x12: ZDATA_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 107 break;
dprowe 3:5f7286858dd0 108 case 15 :
dprowe 3:5f7286858dd0 109 rvalue = adxl362.read_reg(ADXL362::ZDATA_H);
dprowe 3:5f7286858dd0 110 printf("0x13: ZDATA_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 111 break;
dprowe 3:5f7286858dd0 112 case 16 :
dprowe 3:5f7286858dd0 113 rvalue = adxl362.read_reg(ADXL362::TEMP_L);
dprowe 3:5f7286858dd0 114 printf("0x14: TEMP_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 115 break;
dprowe 3:5f7286858dd0 116 case 17 :
dprowe 3:5f7286858dd0 117 rvalue = adxl362.read_reg(ADXL362::TEMP_H);
dprowe 3:5f7286858dd0 118 printf("0x15: TEMP_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 119 break;
dprowe 3:5f7286858dd0 120 case 18 :
dprowe 3:5f7286858dd0 121 rvalue = adxl362.read_reg(ADXL362::SOFT_RESET);
dprowe 3:5f7286858dd0 122 printf("0x1F: SOFT_RESET = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 123 break;
dprowe 3:5f7286858dd0 124 case 19 :
dprowe 3:5f7286858dd0 125 rvalue = adxl362.read_reg(ADXL362::THRESH_ACT_L);
dprowe 3:5f7286858dd0 126 printf("0x20: THRESH_ACT_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 127 break;
dprowe 3:5f7286858dd0 128 case 20 :
dprowe 3:5f7286858dd0 129 rvalue = adxl362.read_reg(ADXL362::THRESH_ACT_H);
dprowe 3:5f7286858dd0 130 printf("0x21: THRESH_ACT_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 131 break;
dprowe 3:5f7286858dd0 132 case 21 :
dprowe 3:5f7286858dd0 133 rvalue = adxl362.read_reg(ADXL362::TIME_ACT);
dprowe 3:5f7286858dd0 134 printf("0x22: TIME_ACT = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 135 break;
dprowe 3:5f7286858dd0 136 case 22 :
dprowe 3:5f7286858dd0 137 rvalue = adxl362.read_reg(ADXL362::THRESH_INACT_L);
dprowe 3:5f7286858dd0 138 printf("0x23: THRESH_INACT_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 139 break;
dprowe 3:5f7286858dd0 140 case 23 :
dprowe 3:5f7286858dd0 141 rvalue = adxl362.read_reg(ADXL362::THRESH_INACT_H);
dprowe 3:5f7286858dd0 142 printf("0x24: THRESH_INACT_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 143 break;
dprowe 3:5f7286858dd0 144 case 24 :
dprowe 3:5f7286858dd0 145 rvalue = adxl362.read_reg(ADXL362::TIME_INACT_L);
dprowe 3:5f7286858dd0 146 printf("0x25: TIME_INACT_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 147 break;
dprowe 3:5f7286858dd0 148 case 25 :
dprowe 3:5f7286858dd0 149 rvalue = adxl362.read_reg(ADXL362::TIME_INACT_H);
dprowe 3:5f7286858dd0 150 printf("0x26: TIME_INACT_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 151 break;
dprowe 3:5f7286858dd0 152 case 26 :
dprowe 3:5f7286858dd0 153 rvalue = adxl362.read_reg(ADXL362::ACT_INACT_CTL);
dprowe 3:5f7286858dd0 154 printf("0x27: ACT_INACT_CTL = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 155 break;
dprowe 3:5f7286858dd0 156 case 27 :
dprowe 3:5f7286858dd0 157 rvalue = adxl362.read_reg(ADXL362::FIFO_CONTROL);
dprowe 3:5f7286858dd0 158 printf("0x28: FIFO_CONTROL = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 159 break;
dprowe 3:5f7286858dd0 160 case 28 :
dprowe 3:5f7286858dd0 161 rvalue = adxl362.read_reg(ADXL362::FIFO_SAMPLES);
dprowe 3:5f7286858dd0 162 printf("0x29: FIFO_SAMPLES = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 163 break;
dprowe 3:5f7286858dd0 164 case 29 :
dprowe 3:5f7286858dd0 165 rvalue = adxl362.read_reg(ADXL362::INTMAP1);
dprowe 3:5f7286858dd0 166 printf("0x2A: INTMAP1 = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 167 break;
dprowe 3:5f7286858dd0 168 case 30 :
dprowe 3:5f7286858dd0 169 rvalue = adxl362.read_reg(ADXL362::INTMAP2);
dprowe 3:5f7286858dd0 170 printf("0x2B: INTMAP2 = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 171 break;
dprowe 3:5f7286858dd0 172 case 31 :
dprowe 3:5f7286858dd0 173 rvalue = adxl362.read_reg(ADXL362::FILTER_CTL);
dprowe 3:5f7286858dd0 174 printf("0x2C: FILTER_CTL = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 175 break;
dprowe 3:5f7286858dd0 176 case 32 :
dprowe 3:5f7286858dd0 177 rvalue = adxl362.read_reg(ADXL362::POWER_CTL);
dprowe 3:5f7286858dd0 178 printf("0x2D: POWER_CTL = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 179 break;
dprowe 3:5f7286858dd0 180 case 33 :
dprowe 3:5f7286858dd0 181 rvalue = adxl362.read_reg(ADXL362::SELF_TEST);
dprowe 3:5f7286858dd0 182 printf("0x2E: SELF_TEST = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 183 break;
dprowe 3:5f7286858dd0 184 default :
dprowe 3:5f7286858dd0 185 printf("ERROR: NO REGISTER HERE\n\r");
dprowe 3:5f7286858dd0 186 break;
dprowe 3:5f7286858dd0 187 }
dprowe 3:5f7286858dd0 188 }
madfain 0:db770a1bef64 189 }
dprowe 3:5f7286858dd0 190 else {
dprowe 3:5f7286858dd0 191 for (i = 0; i < 34; i++){
dprowe 3:5f7286858dd0 192 switch(i){
dprowe 3:5f7286858dd0 193 case 0 :
dprowe 3:5f7286858dd0 194 rvalue = adxl362.read_reg(ADXL362::DEVID_AD);
dprowe 3:5f7286858dd0 195 printf("0x00: DEVID_AD = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 196 break;
dprowe 3:5f7286858dd0 197 case 1 :
dprowe 3:5f7286858dd0 198 rvalue = adxl362.read_reg(ADXL362::DEVID_MST);
dprowe 3:5f7286858dd0 199 printf("0x01: DEVID_MST = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 200 break;
dprowe 3:5f7286858dd0 201 case 2 :
dprowe 3:5f7286858dd0 202 rvalue = adxl362.read_reg(ADXL362::PARTID);
dprowe 3:5f7286858dd0 203 printf("0x02: PARTID = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 204 break;
dprowe 3:5f7286858dd0 205 case 3 :
dprowe 3:5f7286858dd0 206 rvalue = adxl362.read_reg(ADXL362::REVID);
dprowe 3:5f7286858dd0 207 printf("0x03: REVID = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 208 break;
dprowe 3:5f7286858dd0 209 case 4 :
dprowe 3:5f7286858dd0 210 rvalue = adxl362.read_reg(ADXL362::XDATA);
dprowe 3:5f7286858dd0 211 printf("0x08: XDATA = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 212 break;
dprowe 3:5f7286858dd0 213 case 5 :
dprowe 3:5f7286858dd0 214 rvalue = adxl362.read_reg(ADXL362::YDATA);
dprowe 3:5f7286858dd0 215 printf("0x09: YDATA = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 216 break;
dprowe 3:5f7286858dd0 217 case 6 :
dprowe 3:5f7286858dd0 218 rvalue = adxl362.read_reg(ADXL362::ZDATA);
dprowe 3:5f7286858dd0 219 printf("0x0A: ZDATA = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 220 break;
dprowe 3:5f7286858dd0 221 case 7 :
dprowe 3:5f7286858dd0 222 rvalue = adxl362.read_reg(ADXL362::STATUS);
dprowe 3:5f7286858dd0 223 printf("0x0B: STATUS = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 224 break;
dprowe 3:5f7286858dd0 225 case 8 :
dprowe 3:5f7286858dd0 226 rvalue = adxl362.read_reg(ADXL362::FIFO_ENTRIES_L);
dprowe 3:5f7286858dd0 227 printf("0x0C: FIFO_ENTRIES_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 228 break;
dprowe 3:5f7286858dd0 229 case 9 :
dprowe 3:5f7286858dd0 230 rvalue = adxl362.read_reg(ADXL362::FIFO_ENTRIES_H);
dprowe 3:5f7286858dd0 231 printf("0x0D: FIFO_ENTRIES_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 232 break;
dprowe 3:5f7286858dd0 233 case 10 :
dprowe 3:5f7286858dd0 234 rvalue = adxl362.read_reg(ADXL362::XDATA_L);
dprowe 3:5f7286858dd0 235 printf("0x0E: XDATA_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 236 break;
dprowe 3:5f7286858dd0 237 case 11 :
dprowe 3:5f7286858dd0 238 rvalue = adxl362.read_reg(ADXL362::XDATA_H);
dprowe 3:5f7286858dd0 239 printf("0x0F: XDATA_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 240 break;
dprowe 3:5f7286858dd0 241 case 12 :
dprowe 3:5f7286858dd0 242 rvalue = adxl362.read_reg(ADXL362::YDATA_L);
dprowe 3:5f7286858dd0 243 printf("0x10: YDATA_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 244 break;
dprowe 3:5f7286858dd0 245 case 13 :
dprowe 3:5f7286858dd0 246 rvalue = adxl362.read_reg(ADXL362::YDATA_H);
dprowe 3:5f7286858dd0 247 printf("0x11: YDATA_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 248 break;
dprowe 3:5f7286858dd0 249 case 14 :
dprowe 3:5f7286858dd0 250 rvalue = adxl362.read_reg(ADXL362::ZDATA_L);
dprowe 3:5f7286858dd0 251 printf("0x12: ZDATA_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 252 break;
dprowe 3:5f7286858dd0 253 case 15 :
dprowe 3:5f7286858dd0 254 rvalue = adxl362.read_reg(ADXL362::ZDATA_H);
dprowe 3:5f7286858dd0 255 printf("0x13: ZDATA_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 256 break;
dprowe 3:5f7286858dd0 257 case 16 :
dprowe 3:5f7286858dd0 258 rvalue = adxl362.read_reg(ADXL362::TEMP_L);
dprowe 3:5f7286858dd0 259 printf("0x14: TEMP_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 260 break;
dprowe 3:5f7286858dd0 261 case 17 :
dprowe 3:5f7286858dd0 262 rvalue = adxl362.read_reg(ADXL362::TEMP_H);
dprowe 3:5f7286858dd0 263 printf("0x15: TEMP_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 264 break;
dprowe 3:5f7286858dd0 265 case 18 :
dprowe 3:5f7286858dd0 266 rvalue = adxl362.read_reg(ADXL362::SOFT_RESET);
dprowe 3:5f7286858dd0 267 printf("0x1F: SOFT_RESET = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 268 break;
dprowe 3:5f7286858dd0 269 case 19 :
dprowe 3:5f7286858dd0 270 rvalue = adxl362.read_reg(ADXL362::THRESH_ACT_L);
dprowe 3:5f7286858dd0 271 printf("0x20: THRESH_ACT_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 272 break;
dprowe 3:5f7286858dd0 273 case 20 :
dprowe 3:5f7286858dd0 274 rvalue = adxl362.read_reg(ADXL362::THRESH_ACT_H);
dprowe 3:5f7286858dd0 275 printf("0x21: THRESH_ACT_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 276 break;
dprowe 3:5f7286858dd0 277 case 21 :
dprowe 3:5f7286858dd0 278 rvalue = adxl362.read_reg(ADXL362::TIME_ACT);
dprowe 3:5f7286858dd0 279 printf("0x22: TIME_ACT = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 280 break;
dprowe 3:5f7286858dd0 281 case 22 :
dprowe 3:5f7286858dd0 282 rvalue = adxl362.read_reg(ADXL362::THRESH_INACT_L);
dprowe 3:5f7286858dd0 283 printf("0x23: THRESH_INACT_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 284 break;
dprowe 3:5f7286858dd0 285 case 23 :
dprowe 3:5f7286858dd0 286 rvalue = adxl362.read_reg(ADXL362::THRESH_INACT_H);
dprowe 3:5f7286858dd0 287 printf("0x24: THRESH_INACT_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 288 break;
dprowe 3:5f7286858dd0 289 case 24 :
dprowe 3:5f7286858dd0 290 rvalue = adxl362.read_reg(ADXL362::TIME_INACT_L);
dprowe 3:5f7286858dd0 291 printf("0x25: TIME_INACT_L = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 292 break;
dprowe 3:5f7286858dd0 293 case 25 :
dprowe 3:5f7286858dd0 294 rvalue = adxl362.read_reg(ADXL362::TIME_INACT_H);
dprowe 3:5f7286858dd0 295 printf("0x26: TIME_INACT_H = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 296 break;
dprowe 3:5f7286858dd0 297 case 26 :
dprowe 3:5f7286858dd0 298 rvalue = adxl362.read_reg(ADXL362::ACT_INACT_CTL);
dprowe 3:5f7286858dd0 299 printf("0x27: ACT_INACT_CTL = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 300 break;
dprowe 3:5f7286858dd0 301 case 27 :
dprowe 3:5f7286858dd0 302 rvalue = adxl362.read_reg(ADXL362::FIFO_CONTROL);
dprowe 3:5f7286858dd0 303 printf("0x28: FIFO_CONTROL = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 304 break;
dprowe 3:5f7286858dd0 305 case 28 :
dprowe 3:5f7286858dd0 306 rvalue = adxl362.read_reg(ADXL362::FIFO_SAMPLES);
dprowe 3:5f7286858dd0 307 printf("0x29: FIFO_SAMPLES = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 308 break;
dprowe 3:5f7286858dd0 309 case 29 :
dprowe 3:5f7286858dd0 310 rvalue = adxl362.read_reg(ADXL362::INTMAP1);
dprowe 3:5f7286858dd0 311 printf("0x2A: INTMAP1 = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 312 break;
dprowe 3:5f7286858dd0 313 case 30 :
dprowe 3:5f7286858dd0 314 rvalue = adxl362.read_reg(ADXL362::INTMAP2);
dprowe 3:5f7286858dd0 315 printf("0x2B: INTMAP2 = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 316 break;
dprowe 3:5f7286858dd0 317 case 31 :
dprowe 3:5f7286858dd0 318 rvalue = adxl362.read_reg(ADXL362::FILTER_CTL);
dprowe 3:5f7286858dd0 319 printf("0x2C: FILTER_CTL = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 320 break;
dprowe 3:5f7286858dd0 321 case 32 :
dprowe 3:5f7286858dd0 322 rvalue = adxl362.read_reg(ADXL362::POWER_CTL);
dprowe 3:5f7286858dd0 323 printf("0x2D: POWER_CTL = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 324 break;
dprowe 3:5f7286858dd0 325 case 33 :
dprowe 3:5f7286858dd0 326 rvalue = adxl362.read_reg(ADXL362::SELF_TEST);
dprowe 3:5f7286858dd0 327 printf("0x2E: SELF_TEST = %X \n\r", rvalue);
dprowe 3:5f7286858dd0 328 break;
dprowe 3:5f7286858dd0 329 default :
dprowe 3:5f7286858dd0 330 printf("ERROR: NO REGISTER HERE\n\r");
dprowe 3:5f7286858dd0 331 break;
dprowe 3:5f7286858dd0 332 }
dprowe 3:5f7286858dd0 333 }
dprowe 3:5f7286858dd0 334 }
madfain 1:ed3c12662b08 335
dprowe 3:5f7286858dd0 336 return 0;
madfain 0:db770a1bef64 337 }
dprowe 3:5f7286858dd0 338
dprowe 3:5f7286858dd0 339 int blink() {
dprowe 3:5f7286858dd0 340 myled = 1; // LED is ON
dprowe 3:5f7286858dd0 341 wait(2); // 2 sec
dprowe 3:5f7286858dd0 342 myled = 0; // LED is OFF
dprowe 3:5f7286858dd0 343 return 0;
madfain 0:db770a1bef64 344 }
madfain 0:db770a1bef64 345
dprowe 7:ff64fb98ac1b 346 int mpl3115_reg_print(int start, int length){
dprowe 7:ff64fb98ac1b 347
dprowe 7:ff64fb98ac1b 348 uint8_t id;
dprowe 7:ff64fb98ac1b 349
dprowe 7:ff64fb98ac1b 350 if ((start < 0) || (start > 45)) {
dprowe 7:ff64fb98ac1b 351 pc.printf("break 1 \n\r");
dprowe 7:ff64fb98ac1b 352 return -1;
dprowe 7:ff64fb98ac1b 353 }
dprowe 7:ff64fb98ac1b 354 if (length < 0) {
dprowe 7:ff64fb98ac1b 355 pc.printf("break 2 \n\r");
dprowe 7:ff64fb98ac1b 356 return -1;
dprowe 7:ff64fb98ac1b 357 }
dprowe 7:ff64fb98ac1b 358 id = pressure_sensor.getID();
dprowe 7:ff64fb98ac1b 359 if (id!=0xC4) {
dprowe 7:ff64fb98ac1b 360 pc.printf("break 3 \n\r");
dprowe 7:ff64fb98ac1b 361 return -1;
dprowe 7:ff64fb98ac1b 362 }
dprowe 7:ff64fb98ac1b 363
dprowe 7:ff64fb98ac1b 364 uint8_t a[45];
dprowe 7:ff64fb98ac1b 365
dprowe 7:ff64fb98ac1b 366 pressure_sensor.readRegs(start, a, length);
dprowe 7:ff64fb98ac1b 367
dprowe 7:ff64fb98ac1b 368 int i = 0;
dprowe 7:ff64fb98ac1b 369 for (i=0;i<length;i++){
dprowe 7:ff64fb98ac1b 370 pc.printf("0x%X: %s is 0x%X \n\r",i, arr[i], a[i]);
dprowe 7:ff64fb98ac1b 371 }
dprowe 7:ff64fb98ac1b 372 return 0;
dprowe 7:ff64fb98ac1b 373
dprowe 7:ff64fb98ac1b 374 }
dprowe 7:ff64fb98ac1b 375
dprowe 7:ff64fb98ac1b 376 int printA(double* ar1, double* ar2, int start, int end){
dprowe 7:ff64fb98ac1b 377 int i = 0;
dprowe 7:ff64fb98ac1b 378 for (i = start; i < end; i++){
dprowe 7:ff64fb98ac1b 379 pc.printf("value at %d : temp: %f pressure: %f \n\r",i,ar1[i], ar2[i]);
dprowe 7:ff64fb98ac1b 380 }
dprowe 7:ff64fb98ac1b 381 return 0;
dprowe 7:ff64fb98ac1b 382 }
dprowe 7:ff64fb98ac1b 383
madfain 0:db770a1bef64 384 int main() {
dprowe 7:ff64fb98ac1b 385 int arraySize = 250; //approximately the time it takes to ride one elevator floors 1-6
dprowe 7:ff64fb98ac1b 386 double altitudeReading[arraySize];
dprowe 7:ff64fb98ac1b 387 double tempReading[arraySize];
dprowe 7:ff64fb98ac1b 388 int i = 0, j = 0;
dprowe 7:ff64fb98ac1b 389
dprowe 7:ff64fb98ac1b 390 j = mpl3115_reg_print(0, 45);
dprowe 7:ff64fb98ac1b 391
dprowe 7:ff64fb98ac1b 392 for (i = 0; i < arraySize; i++) {
dprowe 7:ff64fb98ac1b 393 altitudeReading[i] = -1;
dprowe 7:ff64fb98ac1b 394 }
dprowe 7:ff64fb98ac1b 395 for(j = 0; j < arraySize; j++) {
dprowe 7:ff64fb98ac1b 396 tempReading[j] = -1;
dprowe 7:ff64fb98ac1b 397 }
dprowe 7:ff64fb98ac1b 398 i = 0;
dprowe 7:ff64fb98ac1b 399 pc.printf("reading an altitude at this point at 10hz\r\n");
dprowe 7:ff64fb98ac1b 400 pc.printf("Enter p to print, enter s to stop: ");
dprowe 7:ff64fb98ac1b 401 while (1) {
dprowe 7:ff64fb98ac1b 402 wait_us(100);
dprowe 7:ff64fb98ac1b 403 altitudeReading[i] = pressure_sensor.getAltitude();
dprowe 7:ff64fb98ac1b 404 i++;
dprowe 7:ff64fb98ac1b 405 tempReading[j] = pressure_sensor.getTemperature();
dprowe 7:ff64fb98ac1b 406 j++;
dprowe 7:ff64fb98ac1b 407 if (i > arraySize) {
dprowe 7:ff64fb98ac1b 408 i = 0;
dprowe 7:ff64fb98ac1b 409 }
dprowe 7:ff64fb98ac1b 410 if( j > arraySize) {
dprowe 7:ff64fb98ac1b 411 j = 0;
dprowe 7:ff64fb98ac1b 412 }
dprowe 7:ff64fb98ac1b 413 if (pc.readable()) {
dprowe 7:ff64fb98ac1b 414 char c = pc.getc();
dprowe 7:ff64fb98ac1b 415 pc.printf("we read a char, it was %c\r\n",c);
dprowe 7:ff64fb98ac1b 416 if (c == 'p') { //press p to show what is currently in the array
dprowe 7:ff64fb98ac1b 417 pc.printf("read a p\r\n");
dprowe 7:ff64fb98ac1b 418 int h = 0;
dprowe 7:ff64fb98ac1b 419 for (h = 0; h < arraySize; h++) {
dprowe 7:ff64fb98ac1b 420 pc.printf("temperature = %f, altitude = %f\r\n", tempReading[h], altitudeReading[h]);
dprowe 7:ff64fb98ac1b 421 }
dprowe 7:ff64fb98ac1b 422 }
dprowe 7:ff64fb98ac1b 423 if( c == 's') { //press s to get it to stop reading
dprowe 7:ff64fb98ac1b 424 break;
dprowe 7:ff64fb98ac1b 425 }
dprowe 7:ff64fb98ac1b 426 }
dprowe 7:ff64fb98ac1b 427
dprowe 7:ff64fb98ac1b 428 }
dprowe 7:ff64fb98ac1b 429
dprowe 7:ff64fb98ac1b 430
dprowe 7:ff64fb98ac1b 431
dprowe 7:ff64fb98ac1b 432
dprowe 7:ff64fb98ac1b 433
dprowe 7:ff64fb98ac1b 434
dprowe 7:ff64fb98ac1b 435
dprowe 7:ff64fb98ac1b 436
dprowe 7:ff64fb98ac1b 437 /* Lab 6 work
dprowe 7:ff64fb98ac1b 438
dprowe 3:5f7286858dd0 439 wait_ms(600); // we need to wait at least 500ms after ADXL362 reset
dprowe 3:5f7286858dd0 440 adxl362.set_mode(ADXL362::MEASUREMENT);
dprowe 3:5f7286858dd0 441 int8_t x,y,z;
dprowe 3:5f7286858dd0 442 int8_t nx, ny, nz;
dprowe 3:5f7286858dd0 443 adxl362_reg_print(0, 0); // call register printing here
dprowe 3:5f7286858dd0 444 adxl362_reg_print(0, 5);
dprowe 3:5f7286858dd0 445 adxl362_reg_print(4, 6);
dprowe 3:5f7286858dd0 446 //while (1) {adxl362_reg_print(0, 0);} to print forever
madfain 0:db770a1bef64 447
dprowe 3:5f7286858dd0 448 int blink_c = 0;
dprowe 3:5f7286858dd0 449 x=adxl362.scanx_u8();
dprowe 3:5f7286858dd0 450 y=adxl362.scany_u8();
dprowe 3:5f7286858dd0 451 z=adxl362.scanz_u8();
dprowe 3:5f7286858dd0 452
dprowe 3:5f7286858dd0 453 while(1) { //detects knocks
dprowe 3:5f7286858dd0 454 x=adxl362.scanx_u8();
dprowe 3:5f7286858dd0 455 y=adxl362.scany_u8();
dprowe 3:5f7286858dd0 456 z=adxl362.scanz_u8();
dprowe 3:5f7286858dd0 457 wait_us(100);
dprowe 3:5f7286858dd0 458 nx=adxl362.scanx_u8();
dprowe 3:5f7286858dd0 459 ny=adxl362.scany_u8();
dprowe 3:5f7286858dd0 460 nz=adxl362.scanz_u8();
dprowe 3:5f7286858dd0 461 if ((abs(x-nx)>=4) || (abs(y-ny)>=4) || (abs(z-nz)>=4)){
dprowe 3:5f7286858dd0 462 blink_c += 1;
dprowe 3:5f7286858dd0 463 printf("number of knocks detected: %d\n\r",blink_c);
dprowe 3:5f7286858dd0 464 blink();
madfain 0:db770a1bef64 465 }
dprowe 7:ff64fb98ac1b 466 } */
dprowe 7:ff64fb98ac1b 467
madfain 0:db770a1bef64 468 }