Lab 6?
Fork of ADXL362 by
main.cpp@2:ea455df926ce, 2018-02-21 (annotated)
- 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?
User | Revision | Line number | New 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 | } |