kjssdbckzj

Dependencies:   ADXL362 mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 //Import libraries
00002 #include "mbed.h"
00003 #include "stdio.h"
00004 #include "math.h"
00005 #include "ADXL362.h"
00006 
00007 //Open COM connection
00008 Serial pc(USBTX, USBRX);
00009 //Define accelerometer
00010 ADXL362 adxl362(p11, p12, p13, p10);
00011 //Set up file system
00012 LocalFileSystem local("local");
00013 
00014 int N = 50;
00015 float T = 0.1;
00016 
00017 int main()
00018 {
00019     //Initialise accelerometer
00020     adxl362.init_spi();
00021     adxl362.init_adxl362();
00022     wait(0.1);
00023     
00024     //Define data variables
00025     int8_t xdata, ydata, zdata;
00026     
00027     //Open data file
00028     FILE *data;
00029     data = fopen("/local/data.txt", "w");
00030     
00031     //Data collection loop using sample rate and number of samples 
00032     for(int i=0; i<N; i++)
00033     {
00034         //Get accelerometer data
00035         adxl362.ACC_GetXYZ8(&xdata,&ydata,&zdata);
00036     
00037         //Print data to data file
00038         fprintf(data, "%+04d", xdata);
00039         fprintf(data, "%+04d", ydata);
00040         fprintf(data, "%+04d", zdata);
00041         
00042         //Attempt to print same data to MATLAB if connection is not null
00043         if(pc != NULL)
00044         {
00045             pc.printf("%+04d\n", xdata);
00046             pc.printf("%+04d\n", ydata);
00047             pc.printf("%+04d\n", zdata);
00048         }
00049         
00050         //Pause to ensure sample rate
00051         wait(T);
00052     }
00053     fclose(data);
00054     
00055     //Reading section
00056     
00057     //Open data file for reading
00058     data = fopen("/local/data.txt" , "r"); 
00059     fseek(data, 0 ,SEEK_SET); //Set cursor to start of file 
00060     int value;
00061     //Print each piece of data to MATLAB (where it should be put into arrays)
00062     for(int i=0; i<50; i++)
00063     {
00064         fscanf(data, "%d", &value);
00065         pc.printf("%+04d\n", value);
00066         fseek(data, sizeof(int), SEEK_CUR); //Sets cursor to next data value
00067     }
00068     fclose(data);
00069 }