CPS-Lab*
/
Lab6
Laboratory 6
main.cpp@1:737fa48a7c0c, 2018-02-22 (annotated)
- Committer:
- fanbsun
- Date:
- Thu Feb 22 20:58:06 2018 +0000
- Revision:
- 1:737fa48a7c0c
- Parent:
- 0:1ca806626aba
vd
Who changed what in which revision?
User | Revision | Line number | New 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 |