lab5

Dependencies:   ADXL362

main.cpp

Committer:
kfricker
Date:
2018-02-26
Revision:
0:cf970e75e1ae
Child:
1:839c14f3143c

File content as of revision 0:cf970e75e1ae:

#include "mbed.h"
#include "ADXL362.h"
DigitalOut led1(LED1);
 
// 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);

int adxl362_reg_print(int start, int length){
     for(int x = 0x00; x<=0x2E; x++){
        if(start==x){
            if(length>0){
             if(ADXL362::DEVID_AD==0xAD){
                uint16_t return_val = adxl362.read_reg(ADXL362::DEVID_AD);
             }
            }
        }           
     }
     
     //printf("%x\n","0x" , return_val);
     return return_val;
}

int main() {
    adxl362.reset();
    wait_ms(600); // we need to wait at least 500ms after ADXL362 reset
    adxl362.set_mode(ADXL362::MEASUREMENT);
    int8_t x,y,z; 
    
    int8_t current [3] = {0,0,0};
    int8_t accel [3] = {0,0,0};
    int8_t currAdd;
    int8_t diffAdd;
    float threshold = 2;
    float val;
    int knock_counter = 0;
    
        while(1) {
            x=adxl362.scanx_u8();
            y=adxl362.scany_u8();
            z=adxl362.scanz_u8();
             current [0] = x; 
             current [1] = y; 
             current [2] = z; 
             currAdd = abs(current[0] + current [1] + current [2]);
            wait_ms(10);
            x=adxl362.scanx_u8();
            y=adxl362.scany_u8();
            z=adxl362.scanz_u8();
                accel[0] = x;
                accel[1] = y;
                accel[2] = z;
                diffAdd = abs(accel[0] + accel [1] + accel [2]);
            wait_ms(10);
            val = abs(currAdd - diffAdd);
            
            if(val > threshold){
             printf("A knock has been heard ma dude\r\n");
             knock_counter ++;
            printf("Knocks = %d\r\n" , knock_counter);
             led1 = 1;
             wait_ms(2000);
             led1 = 0;
             }
          //  printf("x = %d y = %d z = %d\r\n",x,y,z);
        wait_ms(100);
    
  
        
    }
}