Vibration Detector

Dependencies:   ADXL362 mbed

main.cpp

Committer:
kmhatre
Date:
2018-03-10
Revision:
0:7c6ad753eedb

File content as of revision 0:7c6ad753eedb:

/* 
 * ENGR E 210 - CYBER PHYSICAL SYSTEMS (DIGITAL SYSTEMS)
 * LAB 6 - VIBRATION DETECTOR
 * CODE BY KRISH HEMANT MHATRE AND ETHAN ZHANG
 */

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

int main() {
    adxl362.reset();
    wait_ms(600); // we need to wait at least 500ms after ADXL362 reset
    adxl362.set_mode(ADXL362::MEASUREMENT);
    int i = adxl362_reg_print(0, 50);
    
   /* int8_t x,y,z; 
    int knock = -2;
    led1 = 0;
     while(1) 
    {
        if(!led1)
        {
           int a = x+y+z;
           x=adxl362.scanx_u8();
           y=adxl362.scany_u8();
           z=adxl362.scanz_u8();
           int b = x+y+z;
           printf("x = %d y = %d z = %d\r\n",x,y,z);
           if(a-b > 2 || b-a > 2)
           {
              knock++;
              led1 = 1;
           }
           printf("knocks = %d\r\n", knock);
           wait_ms(400);
        }
        else
        {
           wait(2);
           led1 = 0;    
        }
    }*/
    
}



int adxl362_reg_print(int start, int length)
{
    int return_value = 0;
    char *text;
    int value, address;
    if(start < 0x00 || start > 0x2E)
    {
        return_value = -1;  
        exit(0); 
    } 
    else
    {
    int i = start;
    for(i = start; i < length; i++) 
    {
        address = ADXL362::ADXL362_register_t(i);
        if(i == 0)
        {
            text = "DEVID_AD";   
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 1)
        {
            text = "DEVID_MST";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 2)
        {
            text = "PARTID";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 3)
        {
            text = "REVID";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 8)
        {
            text = "XDATA";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 9)
        {
            text = "YDATA";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 10)
        {
            text = "ZDATA";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 11)
        {
            text = "STATUS";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 12)
        {
            text = "FIFO_ENTRIES_L";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 13)
        {
            text = "FIFO_ENTRIES_H";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 14)
        {
            text = "XDATA_L";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 15)
        {
            text = "XDATA_H";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 16)
        {
            text = "YDATA_L";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 17)
        {
            text = "YDATA_H";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 18)
        {
            text = "ZDATA_L";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 19)
        {
            text = "ZDATA_H";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 20)
        {
            text = "TEMP_L";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 21)
        {
            text = "TEMP_H";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 31)
        {
            text = "SOFT_RESET";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 32)
        {
            text = "THRESH_ACT_L";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 33)
        {
            text = "THRESH_ACT_H";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 34)
        {
            text = "TIME_ACT";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 35)
        {
            text = "THREST_INACT_L";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 36)
        {
            text = "THRESH_INACT_H";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 37)
        {
            text = "TIME_INACT_L";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 38)
        {
            text = "TIME_INACT_H";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 39)
        {
            text = "ACT_INACT_CTL";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 40)
        {
            text = "FIFO_CONTROL";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 41)
        {
            text = "FIFO_SAMPLES";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 42)
        {
            text = "INTMAP1";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 43)
        {
            text = "INTMAP2";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 44)
        {
            text = "FILTER_CTL";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 45)
        {
            text = "POWER_CTL";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else if(i == 46)
        {
            text = "SELF_TEXT";
            value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
        }
        else
        {
            text = "NULL";
            value = NULL;
        }
        if(i <= 46 && text != "NULL")
        {
           printf("0x%2.2hhX: %s=0x%2.2hhX \n\r", address, text, value);
        }
    }
    }
    
    return return_value;
}