Lab 6?

Fork of ADXL362 by Analog Devices

Revision:
2:ea455df926ce
Child:
3:cfbb323cbf96
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Feb 21 16:20:45 2018 +0000
@@ -0,0 +1,155 @@
+#include "mbed.h"
+#include "ADXL362.h"
+ 
+// Interface pulled from ADXL362.cpp
+// ADXL362::ADXL362(PinName CS, PinName MOSI, PinName MISO, PinName SCK) :
+ADXL362 adxl362(PA_0,PA_7,PA_6,PA_1);
+
+ 
+int adxl362_reg_print(int start, int length) {
+    int i = start, end = start + length;
+    if(length == 0) {
+     i = 0x00;
+     end = 0x2E;     
+    }
+    if(start > 0x2E || start < 0x00)
+        return(-1);
+    if(length < 0)
+        return(-1);
+    if (adxl362.read_reg((ADXL362::ADXL362_register_t) 0x00) != 0xAD)
+        return(-1);
+    for( i = start; i <= end; i++) {
+     if (i == 0x16 || i == 0x17) continue;
+     char name[25];
+     uint8_t regval = adxl362.read_reg((ADXL362::ADXL362_register_t) i);
+     //printf("%X = %X\n\r", i, regval);
+     switch (regval) { 
+        case 0x00:
+            strcpy(name,"DEVID_A");
+            break;
+        case 0x01:
+            strcpy(name,"DEVID_MST");
+            break;
+        case 0x02:
+            strcpy(name, "PARTID");
+            break;
+        case 0x03:
+            strcpy(name,"REVID");
+            break;
+        case 0x08:
+            strcpy(name,"XDATA");
+            break;
+        case 0x09:
+            strcpy(name,"YDATA");
+            break;
+        case 0x0A:
+            strcpy(name,"ZDATA");
+            break;
+        case 0x0B:
+            strcpy(name,"STATUS");
+            break;
+        case 0x0C:
+            strcpy(name,"FIFO_ENTRIES_L");
+            break;
+        case 0x0D:
+            strcpy(name,"FIFO_ENTRIES_H");
+            break;
+        case 0x0E:
+            strcpy(name,"XDATA_L");
+            break;
+        case 0x0F:
+            strcpy(name,"XDATA_H");
+            break;
+        case 0x10:
+            strcpy(name,"YDATA_L");
+            break;
+        case 0x11:
+            strcpy(name,"YDATA_H");
+            break;
+        case 0x12:
+            strcpy(name,"ZDATA_L");
+            break;
+        case 0x13:
+            strcpy(name,"ZDATA_H");
+            break;
+        case 0x14:
+            strcpy(name,"TEMP_L");
+            break;
+        case 0x15:
+            strcpy(name,"TEMP_H");
+            break;
+        case 0x1F:
+            strcpy(name,"SOFT_RESET");
+            break;
+        case 0x20:
+            strcpy(name,"THRESH_ACT_L");
+            break;
+        case 0x21:
+            strcpy(name,"THRESH_ACT_H");
+            break;
+        case 0x22:
+            strcpy(name,"TIME_ACT");
+            break;
+        case 0x23:
+            strcpy(name,"THRES_INACT_L");
+            break;
+        case 0x24:
+            strcpy(name,"THRESH_INACT_H");
+            break;
+        case 0x25:
+            strcpy(name,"TIME_INACT_L");
+            break;
+        case 0x26:
+            strcpy(name,"TIME_INACT_H");
+            break;
+        case 0x27:
+            strcpy(name,"ACT_INACT_CTL");
+            break;
+        case 0x28:
+            strcpy(name,"FIFO_CONTROL");
+            break;
+        case 0x29:
+            strcpy(name,"FIFO_SAMPLES");
+            break;
+        case 0x2A:
+            strcpy(name,"INTMAP1");
+            break;
+        case 0x2B:
+            strcpy(name,"INTMAP2");
+            break;
+        case 0x2C:
+            strcpy(name,"FILTER_CTL");
+            break;
+        case 0x2D:
+            strcpy(name,"POWER_CTL");
+            break;
+        case 0x2E:
+            strcpy(name,"SELF_TEST");
+            break;
+        default:
+            printf("ERR\n\r");
+    } 
+    printf("%X: %s = %X\n\r", i, name, regval); 
+    }
+    return(0);
+    
+} 
+
+
+
+int main() {
+    adxl362.reset();
+    wait_ms(600); // we need to wait at least 500ms after ADXL362 reset
+    adxl362.set_mode(ADXL362::MEASUREMENT);
+    /*int8_t x,y,z; 
+    
+    while(1) {
+        x=adxl362.scanx_u8();
+        y=adxl362.scany_u8();
+        z=adxl362.scanz_u8();
+        //printf("x = %d y = %d z = %d\r\n",x,y,z);
+        wait_ms(100);
+    }*/
+    int return_val = adxl362_reg_print(0, 3);
+    while(1);
+}