Lab 6?

Fork of ADXL362 by Analog Devices

Committer:
youngs2
Date:
Wed Feb 21 16:20:45 2018 +0000
Revision:
2:ea455df926ce
Child:
3:cfbb323cbf96
lab 6 in progress

Who changed what in which revision?

UserRevisionLine numberNew contents of line
youngs2 2:ea455df926ce 1 #include "mbed.h"
youngs2 2:ea455df926ce 2 #include "ADXL362.h"
youngs2 2:ea455df926ce 3
youngs2 2:ea455df926ce 4 // Interface pulled from ADXL362.cpp
youngs2 2:ea455df926ce 5 // ADXL362::ADXL362(PinName CS, PinName MOSI, PinName MISO, PinName SCK) :
youngs2 2:ea455df926ce 6 ADXL362 adxl362(PA_0,PA_7,PA_6,PA_1);
youngs2 2:ea455df926ce 7
youngs2 2:ea455df926ce 8
youngs2 2:ea455df926ce 9 int adxl362_reg_print(int start, int length) {
youngs2 2:ea455df926ce 10 int i = start, end = start + length;
youngs2 2:ea455df926ce 11 if(length == 0) {
youngs2 2:ea455df926ce 12 i = 0x00;
youngs2 2:ea455df926ce 13 end = 0x2E;
youngs2 2:ea455df926ce 14 }
youngs2 2:ea455df926ce 15 if(start > 0x2E || start < 0x00)
youngs2 2:ea455df926ce 16 return(-1);
youngs2 2:ea455df926ce 17 if(length < 0)
youngs2 2:ea455df926ce 18 return(-1);
youngs2 2:ea455df926ce 19 if (adxl362.read_reg((ADXL362::ADXL362_register_t) 0x00) != 0xAD)
youngs2 2:ea455df926ce 20 return(-1);
youngs2 2:ea455df926ce 21 for( i = start; i <= end; i++) {
youngs2 2:ea455df926ce 22 if (i == 0x16 || i == 0x17) continue;
youngs2 2:ea455df926ce 23 char name[25];
youngs2 2:ea455df926ce 24 uint8_t regval = adxl362.read_reg((ADXL362::ADXL362_register_t) i);
youngs2 2:ea455df926ce 25 //printf("%X = %X\n\r", i, regval);
youngs2 2:ea455df926ce 26 switch (regval) {
youngs2 2:ea455df926ce 27 case 0x00:
youngs2 2:ea455df926ce 28 strcpy(name,"DEVID_A");
youngs2 2:ea455df926ce 29 break;
youngs2 2:ea455df926ce 30 case 0x01:
youngs2 2:ea455df926ce 31 strcpy(name,"DEVID_MST");
youngs2 2:ea455df926ce 32 break;
youngs2 2:ea455df926ce 33 case 0x02:
youngs2 2:ea455df926ce 34 strcpy(name, "PARTID");
youngs2 2:ea455df926ce 35 break;
youngs2 2:ea455df926ce 36 case 0x03:
youngs2 2:ea455df926ce 37 strcpy(name,"REVID");
youngs2 2:ea455df926ce 38 break;
youngs2 2:ea455df926ce 39 case 0x08:
youngs2 2:ea455df926ce 40 strcpy(name,"XDATA");
youngs2 2:ea455df926ce 41 break;
youngs2 2:ea455df926ce 42 case 0x09:
youngs2 2:ea455df926ce 43 strcpy(name,"YDATA");
youngs2 2:ea455df926ce 44 break;
youngs2 2:ea455df926ce 45 case 0x0A:
youngs2 2:ea455df926ce 46 strcpy(name,"ZDATA");
youngs2 2:ea455df926ce 47 break;
youngs2 2:ea455df926ce 48 case 0x0B:
youngs2 2:ea455df926ce 49 strcpy(name,"STATUS");
youngs2 2:ea455df926ce 50 break;
youngs2 2:ea455df926ce 51 case 0x0C:
youngs2 2:ea455df926ce 52 strcpy(name,"FIFO_ENTRIES_L");
youngs2 2:ea455df926ce 53 break;
youngs2 2:ea455df926ce 54 case 0x0D:
youngs2 2:ea455df926ce 55 strcpy(name,"FIFO_ENTRIES_H");
youngs2 2:ea455df926ce 56 break;
youngs2 2:ea455df926ce 57 case 0x0E:
youngs2 2:ea455df926ce 58 strcpy(name,"XDATA_L");
youngs2 2:ea455df926ce 59 break;
youngs2 2:ea455df926ce 60 case 0x0F:
youngs2 2:ea455df926ce 61 strcpy(name,"XDATA_H");
youngs2 2:ea455df926ce 62 break;
youngs2 2:ea455df926ce 63 case 0x10:
youngs2 2:ea455df926ce 64 strcpy(name,"YDATA_L");
youngs2 2:ea455df926ce 65 break;
youngs2 2:ea455df926ce 66 case 0x11:
youngs2 2:ea455df926ce 67 strcpy(name,"YDATA_H");
youngs2 2:ea455df926ce 68 break;
youngs2 2:ea455df926ce 69 case 0x12:
youngs2 2:ea455df926ce 70 strcpy(name,"ZDATA_L");
youngs2 2:ea455df926ce 71 break;
youngs2 2:ea455df926ce 72 case 0x13:
youngs2 2:ea455df926ce 73 strcpy(name,"ZDATA_H");
youngs2 2:ea455df926ce 74 break;
youngs2 2:ea455df926ce 75 case 0x14:
youngs2 2:ea455df926ce 76 strcpy(name,"TEMP_L");
youngs2 2:ea455df926ce 77 break;
youngs2 2:ea455df926ce 78 case 0x15:
youngs2 2:ea455df926ce 79 strcpy(name,"TEMP_H");
youngs2 2:ea455df926ce 80 break;
youngs2 2:ea455df926ce 81 case 0x1F:
youngs2 2:ea455df926ce 82 strcpy(name,"SOFT_RESET");
youngs2 2:ea455df926ce 83 break;
youngs2 2:ea455df926ce 84 case 0x20:
youngs2 2:ea455df926ce 85 strcpy(name,"THRESH_ACT_L");
youngs2 2:ea455df926ce 86 break;
youngs2 2:ea455df926ce 87 case 0x21:
youngs2 2:ea455df926ce 88 strcpy(name,"THRESH_ACT_H");
youngs2 2:ea455df926ce 89 break;
youngs2 2:ea455df926ce 90 case 0x22:
youngs2 2:ea455df926ce 91 strcpy(name,"TIME_ACT");
youngs2 2:ea455df926ce 92 break;
youngs2 2:ea455df926ce 93 case 0x23:
youngs2 2:ea455df926ce 94 strcpy(name,"THRES_INACT_L");
youngs2 2:ea455df926ce 95 break;
youngs2 2:ea455df926ce 96 case 0x24:
youngs2 2:ea455df926ce 97 strcpy(name,"THRESH_INACT_H");
youngs2 2:ea455df926ce 98 break;
youngs2 2:ea455df926ce 99 case 0x25:
youngs2 2:ea455df926ce 100 strcpy(name,"TIME_INACT_L");
youngs2 2:ea455df926ce 101 break;
youngs2 2:ea455df926ce 102 case 0x26:
youngs2 2:ea455df926ce 103 strcpy(name,"TIME_INACT_H");
youngs2 2:ea455df926ce 104 break;
youngs2 2:ea455df926ce 105 case 0x27:
youngs2 2:ea455df926ce 106 strcpy(name,"ACT_INACT_CTL");
youngs2 2:ea455df926ce 107 break;
youngs2 2:ea455df926ce 108 case 0x28:
youngs2 2:ea455df926ce 109 strcpy(name,"FIFO_CONTROL");
youngs2 2:ea455df926ce 110 break;
youngs2 2:ea455df926ce 111 case 0x29:
youngs2 2:ea455df926ce 112 strcpy(name,"FIFO_SAMPLES");
youngs2 2:ea455df926ce 113 break;
youngs2 2:ea455df926ce 114 case 0x2A:
youngs2 2:ea455df926ce 115 strcpy(name,"INTMAP1");
youngs2 2:ea455df926ce 116 break;
youngs2 2:ea455df926ce 117 case 0x2B:
youngs2 2:ea455df926ce 118 strcpy(name,"INTMAP2");
youngs2 2:ea455df926ce 119 break;
youngs2 2:ea455df926ce 120 case 0x2C:
youngs2 2:ea455df926ce 121 strcpy(name,"FILTER_CTL");
youngs2 2:ea455df926ce 122 break;
youngs2 2:ea455df926ce 123 case 0x2D:
youngs2 2:ea455df926ce 124 strcpy(name,"POWER_CTL");
youngs2 2:ea455df926ce 125 break;
youngs2 2:ea455df926ce 126 case 0x2E:
youngs2 2:ea455df926ce 127 strcpy(name,"SELF_TEST");
youngs2 2:ea455df926ce 128 break;
youngs2 2:ea455df926ce 129 default:
youngs2 2:ea455df926ce 130 printf("ERR\n\r");
youngs2 2:ea455df926ce 131 }
youngs2 2:ea455df926ce 132 printf("%X: %s = %X\n\r", i, name, regval);
youngs2 2:ea455df926ce 133 }
youngs2 2:ea455df926ce 134 return(0);
youngs2 2:ea455df926ce 135
youngs2 2:ea455df926ce 136 }
youngs2 2:ea455df926ce 137
youngs2 2:ea455df926ce 138
youngs2 2:ea455df926ce 139
youngs2 2:ea455df926ce 140 int main() {
youngs2 2:ea455df926ce 141 adxl362.reset();
youngs2 2:ea455df926ce 142 wait_ms(600); // we need to wait at least 500ms after ADXL362 reset
youngs2 2:ea455df926ce 143 adxl362.set_mode(ADXL362::MEASUREMENT);
youngs2 2:ea455df926ce 144 /*int8_t x,y,z;
youngs2 2:ea455df926ce 145
youngs2 2:ea455df926ce 146 while(1) {
youngs2 2:ea455df926ce 147 x=adxl362.scanx_u8();
youngs2 2:ea455df926ce 148 y=adxl362.scany_u8();
youngs2 2:ea455df926ce 149 z=adxl362.scanz_u8();
youngs2 2:ea455df926ce 150 //printf("x = %d y = %d z = %d\r\n",x,y,z);
youngs2 2:ea455df926ce 151 wait_ms(100);
youngs2 2:ea455df926ce 152 }*/
youngs2 2:ea455df926ce 153 int return_val = adxl362_reg_print(0, 3);
youngs2 2:ea455df926ce 154 while(1);
youngs2 2:ea455df926ce 155 }