CPS-Lab*
/
Lab6
Lab6_
Fork of Lab6 by
Diff: main.cpp
- Revision:
- 1:308da76c50c5
- Parent:
- 0:36f6b91a8ff8
- Child:
- 3:c33d79df337a
diff -r 36f6b91a8ff8 -r 308da76c50c5 main.cpp --- 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; + + } + + } }