kjssdbckzj
Embed:
(wiki syntax)
Show/hide line numbers
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 }
Generated on Sun Aug 28 2022 05:44:40 by
1.7.2