Lab6_

Dependencies:   ADXL362 mbed

Fork of Lab6 by Jackie Youngs

Revision:
1:308da76c50c5
Parent:
0:36f6b91a8ff8
Child:
3:c33d79df337a
--- a/main.cpp	Thu Feb 22 18:11:48 2018 +0000
+++ b/main.cpp	Thu Feb 22 20:01:35 2018 +0000
@@ -4,11 +4,12 @@
 // 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);
+DigitalOut led1(LED1);
 
  
 int adxl362_reg_print(int start, int length) {
     if(length == 0)
-        length = 42;
+        length = 46;
     int i = start, end = start + length;     
     if(start > 0x2E || start < 0x00)
         return(-1);
@@ -16,6 +17,8 @@
         return(-1);
     if (adxl362.read_reg((ADXL362::ADXL362_register_t) 0x00) != 0xAD)
         return(-1);
+    if (end > 47)
+        return(-1);
     for( i = start; i <= end; i++) {
         //0x16 -> 0x1E not used
         //0x04 -> 0x07 not used
@@ -129,7 +132,7 @@
             default:
                 printf("ERR\n\r");
         } 
-        printf("%x: %s = %x\n\r", i, name, regval); 
+        printf("0x%02X: %s = 0x%02X\n\r", i, name, regval); 
         
     }
     return(0);
@@ -141,18 +144,32 @@
     adxl362.reset();
     wait_ms(600); // we need to wait at least 500ms after ADXL362 reset
     adxl362.set_mode(ADXL362::MEASUREMENT);
-    while(1) {
-        int return_val = adxl362_reg_print(0, 0);
-        //add scans to ask user input
-        } 
-    
-    /*int8_t x,y,z; 
-    
+    int return_val, start, length;
+    int8_t x,y,z,a,b,c, t=4;
+    printf("Enter start: \n\r");
+    scanf("%d", &start);
+    printf("Enter length: \n\r");
+    scanf("%d", &length);
+    return_val = adxl362_reg_print(start, length);
+    printf("Return Val Read Reg: %d \n\r", return_val);
+    wait_ms(5000);
     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);
-    }*/
+        wait_ms(10);
+        a=adxl362.scanx_u8();
+        b=adxl362.scany_u8();
+        c=adxl362.scanz_u8();
+        if (a >= x+t || a <= x-t ||
+            b >= y+t || b <= y-t ||
+            c >= z+t || c <= z-t) {
+            printf("Knock\n\r");
+            led1 = 1;
+            wait_ms(2000);
+            led1 = 0;
+            
+        } 
+        
+    }
 }