oldexamplecode

Dependencies:   mbed

Committer:
rik
Date:
Fri Mar 24 11:22:30 2017 +0000
Revision:
0:6863633bf8a4
oldexamplecode;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rik 0:6863633bf8a4 1 #include "mbed.h"
rik 0:6863633bf8a4 2 #include "DFT.h"
rik 0:6863633bf8a4 3 #include "LookupTables.h"
rik 0:6863633bf8a4 4 #include "complexmath.h"
rik 0:6863633bf8a4 5 #include <math.h>
rik 0:6863633bf8a4 6
rik 0:6863633bf8a4 7
rik 0:6863633bf8a4 8 AnalogIn emg1(A0);
rik 0:6863633bf8a4 9 Serial pc(USBTX, USBRX);
rik 0:6863633bf8a4 10 AnalogIn emg2(A1);
rik 0:6863633bf8a4 11 AnalogIn emg3(A2);
rik 0:6863633bf8a4 12 AnalogIn emg4(A3);
rik 0:6863633bf8a4 13 Ticker ADCTimer;
rik 0:6863633bf8a4 14 bool fftflag = false;
rik 0:6863633bf8a4 15 int counter;
rik 0:6863633bf8a4 16 int PSDmag1;
rik 0:6863633bf8a4 17 int PSDmag2;
rik 0:6863633bf8a4 18 int PSDmag3;
rik 0:6863633bf8a4 19 int PSDmag4;
rik 0:6863633bf8a4 20 float sampleddataemg1[1024];
rik 0:6863633bf8a4 21 float sampleddataemg2[1024];
rik 0:6863633bf8a4 22 float sampleddataemg3[1024];
rik 0:6863633bf8a4 23 float sampleddataemg4[1024];
rik 0:6863633bf8a4 24
rik 0:6863633bf8a4 25
rik 0:6863633bf8a4 26 void sampling()
rik 0:6863633bf8a4 27 {
rik 0:6863633bf8a4 28 while (fftflag == false) {
rik 0:6863633bf8a4 29 sampleddataemg1[counter] = emg1;
rik 0:6863633bf8a4 30 sampleddataemg2[counter] = emg2;
rik 0:6863633bf8a4 31 sampleddataemg3[counter] = emg3;
rik 0:6863633bf8a4 32 sampleddataemg4[counter] = emg4;
rik 0:6863633bf8a4 33 counter++;
rik 0:6863633bf8a4 34 if (counter >= 1024) {
rik 0:6863633bf8a4 35 counter =0;
rik 0:6863633bf8a4 36 pc.printf ("EMG data from A0 :[");
rik 0:6863633bf8a4 37 for (int i=0; i<1024; i++)
rik 0:6863633bf8a4 38 pc.printf ("%f,\t",sampleddataemg1[i]);
rik 0:6863633bf8a4 39 //pc.printf ("EMG data from A3 :[");
rik 0:6863633bf8a4 40 //for (int i=0; i<1024; i++)
rik 0:6863633bf8a4 41 // pc.printf ("%f,\t",sampleddataemg4[i]);
rik 0:6863633bf8a4 42 fftflag = true;
rik 0:6863633bf8a4 43 performFFT(sampleddataemg1, 1024);
rik 0:6863633bf8a4 44 //pc.printf ("done 1");
rik 0:6863633bf8a4 45 performFFT(sampleddataemg2, 1024);
rik 0:6863633bf8a4 46 //pc.printf ("done 2");
rik 0:6863633bf8a4 47 performFFT(sampleddataemg3, 1024);
rik 0:6863633bf8a4 48 //pc.printf ("done 3");
rik 0:6863633bf8a4 49 performFFT(sampleddataemg4, 1024);
rik 0:6863633bf8a4 50 pc.printf ("\r\n\r\n\r\n post data from A0 :[");
rik 0:6863633bf8a4 51 for (int i=0; i<1024; i++)
rik 0:6863633bf8a4 52 pc.printf ("%f,\t",sampleddataemg1[i]);
rik 0:6863633bf8a4 53 //pc.printf ("post data from A3 :[");
rik 0:6863633bf8a4 54 //for (int i=0; i<1024; i++)
rik 0:6863633bf8a4 55 // pc.printf ("%f,\t",sampleddataemg4[i]);
rik 0:6863633bf8a4 56 //pc.printf ("EMG data from A1 :[");
rik 0:6863633bf8a4 57 //for (int i=0; i<1024; i++)
rik 0:6863633bf8a4 58 // pc.printf ("%f,\t",sampleddataemg2[i]);
rik 0:6863633bf8a4 59 //pc.printf ("EMG data from A2 :[");
rik 0:6863633bf8a4 60 //for (int i=0; i<1024; i++)
rik 0:6863633bf8a4 61 // pc.printf ("%f,\t",sampleddataemg3[i]);
rik 0:6863633bf8a4 62 //pc.printf ("EMG data from A3 :[");
rik 0:6863633bf8a4 63 //for (int i=0; i<1024; i++)
rik 0:6863633bf8a4 64 // pc.printf ("%f,\t",sampleddataemg4[i]);
rik 0:6863633bf8a4 65 PSDmag1 = calcPSD(sampleddataemg1, 512);
rik 0:6863633bf8a4 66 pc.printf ("summed magnitude of A0: %d\r\n",PSDmag1);
rik 0:6863633bf8a4 67 PSDmag2 = calcPSD(sampleddataemg2, 512);
rik 0:6863633bf8a4 68 //pc.printf ("summed magnitude of A1: %d\r\n",PSDmag2);
rik 0:6863633bf8a4 69 PSDmag3 = calcPSD(sampleddataemg3, 512);
rik 0:6863633bf8a4 70 //pc.printf ("summed magnitude of A2: %d\r\n",PSDmag3);
rik 0:6863633bf8a4 71 PSDmag4 = calcPSD(sampleddataemg4, 512);
rik 0:6863633bf8a4 72 //pc.printf ("summed magnitude of A3: %d\r\n",PSDmag4);
rik 0:6863633bf8a4 73 fftflag = false; // this need to be false for continuous operation, now it is a one-shot kill
rik 0:6863633bf8a4 74 }
rik 0:6863633bf8a4 75 }
rik 0:6863633bf8a4 76 }
rik 0:6863633bf8a4 77
rik 0:6863633bf8a4 78
rik 0:6863633bf8a4 79 int main()
rik 0:6863633bf8a4 80 {
rik 0:6863633bf8a4 81 ADCTimer.attach(&sampling, 0.1/1024);
rik 0:6863633bf8a4 82 pc.baud(19200);
rik 0:6863633bf8a4 83 while(1) {
rik 0:6863633bf8a4 84 }
rik 0:6863633bf8a4 85
rik 0:6863633bf8a4 86
rik 0:6863633bf8a4 87
rik 0:6863633bf8a4 88
rik 0:6863633bf8a4 89 }