Laboratory 6

Dependencies:   ADXL362 mbed

Committer:
fanbsun
Date:
Thu Feb 22 20:58:06 2018 +0000
Revision:
1:737fa48a7c0c
Parent:
0:1ca806626aba
vd

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jackclar 0:1ca806626aba 1 #include "mbed.h"
jackclar 0:1ca806626aba 2 #include "ADXL362.h"
fanbsun 1:737fa48a7c0c 3 #include <stdlib.h>
fanbsun 1:737fa48a7c0c 4
jackclar 0:1ca806626aba 5
jackclar 0:1ca806626aba 6 // Interface pulled from ADXL362.cpp
jackclar 0:1ca806626aba 7 // ADXL362::ADXL362(PinName CS, PinName MOSI, PinName MISO, PinName SCK) :
jackclar 0:1ca806626aba 8 ADXL362 adxl362(PA_0,PA_7,PA_6,PA_1);
jackclar 0:1ca806626aba 9 Serial pc(USBTX, USBRX);
jackclar 0:1ca806626aba 10
jackclar 0:1ca806626aba 11 int adxl362_reg_print(int start, int length);
jackclar 0:1ca806626aba 12
jackclar 0:1ca806626aba 13 int main()
jackclar 0:1ca806626aba 14 {
jackclar 0:1ca806626aba 15 adxl362.reset();
jackclar 0:1ca806626aba 16 wait_ms(600); // we need to wait at least 500ms after ADXL362 reset
jackclar 0:1ca806626aba 17 adxl362.set_mode(ADXL362::MEASUREMENT);
jackclar 0:1ca806626aba 18
jackclar 0:1ca806626aba 19 adxl362_reg_print(0, 3);
fanbsun 1:737fa48a7c0c 20
fanbsun 1:737fa48a7c0c 21 adx1362_knock_detect();
fanbsun 1:737fa48a7c0c 22
fanbsun 1:737fa48a7c0c 23
fanbsun 1:737fa48a7c0c 24
fanbsun 1:737fa48a7c0c 25
fanbsun 1:737fa48a7c0c 26
fanbsun 1:737fa48a7c0c 27
fanbsun 1:737fa48a7c0c 28
jackclar 0:1ca806626aba 29 return(0);
jackclar 0:1ca806626aba 30 }
jackclar 0:1ca806626aba 31
jackclar 0:1ca806626aba 32
jackclar 0:1ca806626aba 33
jackclar 0:1ca806626aba 34 int adxl362_reg_print(int start, int length)
jackclar 0:1ca806626aba 35 {
jackclar 0:1ca806626aba 36 int i;
jackclar 0:1ca806626aba 37 if(start >= 0x00 && start <= 0x2E && length >= 0x00 /*&& (adxl362.read_reg(adxl362.DEVID_AD) == 0xAD)*/)
jackclar 0:1ca806626aba 38 {
jackclar 0:1ca806626aba 39 for(i = start; i <= start + length; i++)
jackclar 0:1ca806626aba 40 {
jackclar 0:1ca806626aba 41 pc.printf("\n\r0x%x: Test=%d\n\r", i, adxl362.read_reg());
jackclar 0:1ca806626aba 42 }
jackclar 0:1ca806626aba 43 }
jackclar 0:1ca806626aba 44 else
jackclar 0:1ca806626aba 45 {
jackclar 0:1ca806626aba 46 pc.printf("Error");
jackclar 0:1ca806626aba 47 return(-1);
jackclar 0:1ca806626aba 48 }
jackclar 0:1ca806626aba 49 }
fanbsun 1:737fa48a7c0c 50
fanbsun 1:737fa48a7c0c 51 void adx1362_knock_detect()
fanbsun 1:737fa48a7c0c 52 {
fanbsun 1:737fa48a7c0c 53 int8_t x1,y1,z1,x2,y2,z2,x,y,z;
fanbsun 1:737fa48a7c0c 54 while(1)
fanbsun 1:737fa48a7c0c 55 {
fanbsun 1:737fa48a7c0c 56
fanbsun 1:737fa48a7c0c 57 while(1)
fanbsun 1:737fa48a7c0c 58 {
fanbsun 1:737fa48a7c0c 59 x1=adxl362.scanx_u8();
fanbsun 1:737fa48a7c0c 60 y1=adxl362.scany_u8();
fanbsun 1:737fa48a7c0c 61 z1=adxl362.scanz_u8();
fanbsun 1:737fa48a7c0c 62 wait_ms(100);
fanbsun 1:737fa48a7c0c 63 x2=adxl362.scanx_u8();
fanbsun 1:737fa48a7c0c 64 y2=adxl362.scany_u8();
fanbsun 1:737fa48a7c0c 65 z2=adxl362.scanz_u8();
fanbsun 1:737fa48a7c0c 66
fanbsun 1:737fa48a7c0c 67 x=abs(x1 - x2);
fanbsun 1:737fa48a7c0c 68 y=abs(y1 - y2);
fanbsun 1:737fa48a7c0c 69 z=abs(z1 - z2);
fanbsun 1:737fa48a7c0c 70
fanbsun 1:737fa48a7c0c 71 if (x>10 || y>10 || z>10)
fanbsun 1:737fa48a7c0c 72 break;
fanbsun 1:737fa48a7c0c 73
fanbsun 1:737fa48a7c0c 74 printf("x = %d y = %d z = %d\r\n",x,y,z);
fanbsun 1:737fa48a7c0c 75 wait_ms(100);
fanbsun 1:737fa48a7c0c 76 }
fanbsun 1:737fa48a7c0c 77
fanbsun 1:737fa48a7c0c 78 myled = 1;
fanbsun 1:737fa48a7c0c 79 wait(2);
fanbsun 1:737fa48a7c0c 80
fanbsun 1:737fa48a7c0c 81 }
fanbsun 1:737fa48a7c0c 82
fanbsun 1:737fa48a7c0c 83
fanbsun 1:737fa48a7c0c 84
fanbsun 1:737fa48a7c0c 85
fanbsun 1:737fa48a7c0c 86
fanbsun 1:737fa48a7c0c 87