lab5
Dependencies: ADXL362
main.cpp@0:cf970e75e1ae, 2018-02-26 (annotated)
- Committer:
- kfricker
- Date:
- Mon Feb 26 01:39:55 2018 +0000
- Revision:
- 0:cf970e75e1ae
- Child:
- 1:839c14f3143c
lab5;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kfricker | 0:cf970e75e1ae | 1 | #include "mbed.h" |
kfricker | 0:cf970e75e1ae | 2 | #include "ADXL362.h" |
kfricker | 0:cf970e75e1ae | 3 | DigitalOut led1(LED1); |
kfricker | 0:cf970e75e1ae | 4 | |
kfricker | 0:cf970e75e1ae | 5 | // Interface pulled from ADXL362.cpp |
kfricker | 0:cf970e75e1ae | 6 | // ADXL362::ADXL362(PinName CS, PinName MOSI, PinName MISO, PinName SCK) : |
kfricker | 0:cf970e75e1ae | 7 | ADXL362 adxl362(PA_0,PA_7,PA_6,PA_1); |
kfricker | 0:cf970e75e1ae | 8 | |
kfricker | 0:cf970e75e1ae | 9 | int adxl362_reg_print(int start, int length){ |
kfricker | 0:cf970e75e1ae | 10 | for(int x = 0x00; x<=0x2E; x++){ |
kfricker | 0:cf970e75e1ae | 11 | if(start==x){ |
kfricker | 0:cf970e75e1ae | 12 | if(length>0){ |
kfricker | 0:cf970e75e1ae | 13 | if(ADXL362::DEVID_AD==0xAD){ |
kfricker | 0:cf970e75e1ae | 14 | uint16_t return_val = adxl362.read_reg(ADXL362::DEVID_AD); |
kfricker | 0:cf970e75e1ae | 15 | } |
kfricker | 0:cf970e75e1ae | 16 | } |
kfricker | 0:cf970e75e1ae | 17 | } |
kfricker | 0:cf970e75e1ae | 18 | } |
kfricker | 0:cf970e75e1ae | 19 | |
kfricker | 0:cf970e75e1ae | 20 | //printf("%x\n","0x" , return_val); |
kfricker | 0:cf970e75e1ae | 21 | return return_val; |
kfricker | 0:cf970e75e1ae | 22 | } |
kfricker | 0:cf970e75e1ae | 23 | |
kfricker | 0:cf970e75e1ae | 24 | int main() { |
kfricker | 0:cf970e75e1ae | 25 | adxl362.reset(); |
kfricker | 0:cf970e75e1ae | 26 | wait_ms(600); // we need to wait at least 500ms after ADXL362 reset |
kfricker | 0:cf970e75e1ae | 27 | adxl362.set_mode(ADXL362::MEASUREMENT); |
kfricker | 0:cf970e75e1ae | 28 | int8_t x,y,z; |
kfricker | 0:cf970e75e1ae | 29 | |
kfricker | 0:cf970e75e1ae | 30 | int8_t current [3] = {0,0,0}; |
kfricker | 0:cf970e75e1ae | 31 | int8_t accel [3] = {0,0,0}; |
kfricker | 0:cf970e75e1ae | 32 | int8_t currAdd; |
kfricker | 0:cf970e75e1ae | 33 | int8_t diffAdd; |
kfricker | 0:cf970e75e1ae | 34 | float threshold = 2; |
kfricker | 0:cf970e75e1ae | 35 | float val; |
kfricker | 0:cf970e75e1ae | 36 | int knock_counter = 0; |
kfricker | 0:cf970e75e1ae | 37 | |
kfricker | 0:cf970e75e1ae | 38 | while(1) { |
kfricker | 0:cf970e75e1ae | 39 | x=adxl362.scanx_u8(); |
kfricker | 0:cf970e75e1ae | 40 | y=adxl362.scany_u8(); |
kfricker | 0:cf970e75e1ae | 41 | z=adxl362.scanz_u8(); |
kfricker | 0:cf970e75e1ae | 42 | current [0] = x; |
kfricker | 0:cf970e75e1ae | 43 | current [1] = y; |
kfricker | 0:cf970e75e1ae | 44 | current [2] = z; |
kfricker | 0:cf970e75e1ae | 45 | currAdd = abs(current[0] + current [1] + current [2]); |
kfricker | 0:cf970e75e1ae | 46 | wait_ms(10); |
kfricker | 0:cf970e75e1ae | 47 | x=adxl362.scanx_u8(); |
kfricker | 0:cf970e75e1ae | 48 | y=adxl362.scany_u8(); |
kfricker | 0:cf970e75e1ae | 49 | z=adxl362.scanz_u8(); |
kfricker | 0:cf970e75e1ae | 50 | accel[0] = x; |
kfricker | 0:cf970e75e1ae | 51 | accel[1] = y; |
kfricker | 0:cf970e75e1ae | 52 | accel[2] = z; |
kfricker | 0:cf970e75e1ae | 53 | diffAdd = abs(accel[0] + accel [1] + accel [2]); |
kfricker | 0:cf970e75e1ae | 54 | wait_ms(10); |
kfricker | 0:cf970e75e1ae | 55 | val = abs(currAdd - diffAdd); |
kfricker | 0:cf970e75e1ae | 56 | |
kfricker | 0:cf970e75e1ae | 57 | if(val > threshold){ |
kfricker | 0:cf970e75e1ae | 58 | printf("A knock has been heard ma dude\r\n"); |
kfricker | 0:cf970e75e1ae | 59 | knock_counter ++; |
kfricker | 0:cf970e75e1ae | 60 | printf("Knocks = %d\r\n" , knock_counter); |
kfricker | 0:cf970e75e1ae | 61 | led1 = 1; |
kfricker | 0:cf970e75e1ae | 62 | wait_ms(2000); |
kfricker | 0:cf970e75e1ae | 63 | led1 = 0; |
kfricker | 0:cf970e75e1ae | 64 | } |
kfricker | 0:cf970e75e1ae | 65 | // printf("x = %d y = %d z = %d\r\n",x,y,z); |
kfricker | 0:cf970e75e1ae | 66 | wait_ms(100); |
kfricker | 0:cf970e75e1ae | 67 | |
kfricker | 0:cf970e75e1ae | 68 | |
kfricker | 0:cf970e75e1ae | 69 | |
kfricker | 0:cf970e75e1ae | 70 | } |
kfricker | 0:cf970e75e1ae | 71 | } |