CPS-Lab / Mbed 2 deprecated Lab6

Dependencies:   ADXL362 mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 /* 
00002  * ENGR E 210 - CYBER PHYSICAL SYSTEMS (DIGITAL SYSTEMS)
00003  * LAB 6 - VIBRATION DETECTOR
00004  * CODE BY KRISH HEMANT MHATRE AND ETHAN ZHANG
00005  */
00006 
00007 #include "mbed.h"
00008 #include "ADXL362.h"
00009  
00010 // Interface pulled from ADXL362.cpp
00011 // ADXL362::ADXL362(PinName CS, PinName MOSI, PinName MISO, PinName SCK) :
00012 ADXL362 adxl362(PA_0,PA_7,PA_6,PA_1);
00013 DigitalOut led1(LED1);
00014 int adxl362_reg_print(int start, int length);
00015 
00016 int main() {
00017     adxl362.reset();
00018     wait_ms(600); // we need to wait at least 500ms after ADXL362 reset
00019     adxl362.set_mode(ADXL362::MEASUREMENT);
00020     int i = adxl362_reg_print(0, 50);
00021     
00022    /* int8_t x,y,z; 
00023     int knock = -2;
00024     led1 = 0;
00025      while(1) 
00026     {
00027         if(!led1)
00028         {
00029            int a = x+y+z;
00030            x=adxl362.scanx_u8();
00031            y=adxl362.scany_u8();
00032            z=adxl362.scanz_u8();
00033            int b = x+y+z;
00034            printf("x = %d y = %d z = %d\r\n",x,y,z);
00035            if(a-b > 2 || b-a > 2)
00036            {
00037               knock++;
00038               led1 = 1;
00039            }
00040            printf("knocks = %d\r\n", knock);
00041            wait_ms(400);
00042         }
00043         else
00044         {
00045            wait(2);
00046            led1 = 0;    
00047         }
00048     }*/
00049     
00050 }
00051 
00052 
00053 
00054 int adxl362_reg_print(int start, int length)
00055 {
00056     int return_value = 0;
00057     char *text;
00058     int value, address;
00059     if(start < 0x00 || start > 0x2E)
00060     {
00061         return_value = -1;  
00062         exit(0); 
00063     } 
00064     else
00065     {
00066     int i = start;
00067     for(i = start; i < length; i++) 
00068     {
00069         address = ADXL362::ADXL362_register_t(i);
00070         if(i == 0)
00071         {
00072             text = "DEVID_AD";   
00073             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00074         }
00075         else if(i == 1)
00076         {
00077             text = "DEVID_MST";
00078             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00079         }
00080         else if(i == 2)
00081         {
00082             text = "PARTID";
00083             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00084         }
00085         else if(i == 3)
00086         {
00087             text = "REVID";
00088             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00089         }
00090         else if(i == 8)
00091         {
00092             text = "XDATA";
00093             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00094         }
00095         else if(i == 9)
00096         {
00097             text = "YDATA";
00098             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00099         }
00100         else if(i == 10)
00101         {
00102             text = "ZDATA";
00103             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00104         }
00105         else if(i == 11)
00106         {
00107             text = "STATUS";
00108             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00109         }
00110         else if(i == 12)
00111         {
00112             text = "FIFO_ENTRIES_L";
00113             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00114         }
00115         else if(i == 13)
00116         {
00117             text = "FIFO_ENTRIES_H";
00118             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00119         }
00120         else if(i == 14)
00121         {
00122             text = "XDATA_L";
00123             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00124         }
00125         else if(i == 15)
00126         {
00127             text = "XDATA_H";
00128             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00129         }
00130         else if(i == 16)
00131         {
00132             text = "YDATA_L";
00133             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00134         }
00135         else if(i == 17)
00136         {
00137             text = "YDATA_H";
00138             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00139         }
00140         else if(i == 18)
00141         {
00142             text = "ZDATA_L";
00143             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00144         }
00145         else if(i == 19)
00146         {
00147             text = "ZDATA_H";
00148             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00149         }
00150         else if(i == 20)
00151         {
00152             text = "TEMP_L";
00153             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00154         }
00155         else if(i == 21)
00156         {
00157             text = "TEMP_H";
00158             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00159         }
00160         else if(i == 31)
00161         {
00162             text = "SOFT_RESET";
00163             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00164         }
00165         else if(i == 32)
00166         {
00167             text = "THRESH_ACT_L";
00168             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00169         }
00170         else if(i == 33)
00171         {
00172             text = "THRESH_ACT_H";
00173             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00174         }
00175         else if(i == 34)
00176         {
00177             text = "TIME_ACT";
00178             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00179         }
00180         else if(i == 35)
00181         {
00182             text = "THREST_INACT_L";
00183             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00184         }
00185         else if(i == 36)
00186         {
00187             text = "THRESH_INACT_H";
00188             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00189         }
00190         else if(i == 37)
00191         {
00192             text = "TIME_INACT_L";
00193             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00194         }
00195         else if(i == 38)
00196         {
00197             text = "TIME_INACT_H";
00198             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00199         }
00200         else if(i == 39)
00201         {
00202             text = "ACT_INACT_CTL";
00203             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00204         }
00205         else if(i == 40)
00206         {
00207             text = "FIFO_CONTROL";
00208             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00209         }
00210         else if(i == 41)
00211         {
00212             text = "FIFO_SAMPLES";
00213             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00214         }
00215         else if(i == 42)
00216         {
00217             text = "INTMAP1";
00218             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00219         }
00220         else if(i == 43)
00221         {
00222             text = "INTMAP2";
00223             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00224         }
00225         else if(i == 44)
00226         {
00227             text = "FILTER_CTL";
00228             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00229         }
00230         else if(i == 45)
00231         {
00232             text = "POWER_CTL";
00233             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00234         }
00235         else if(i == 46)
00236         {
00237             text = "SELF_TEXT";
00238             value = (adxl362.read_reg((ADXL362::ADXL362_register_t(i))));
00239         }
00240         else
00241         {
00242             text = "NULL";
00243             value = NULL;
00244         }
00245         if(i <= 46 && text != "NULL")
00246         {
00247            printf("0x%2.2hhX: %s=0x%2.2hhX \n\r", address, text, value);
00248         }
00249     }
00250     }
00251     
00252     return return_value;
00253 }