Thomas Plaisier / Mbed 2 deprecated G3_Barry_Plotter.

Dependencies:   MODSERIAL mbed Encoder

Committer:
Socrates
Date:
Wed Oct 16 08:54:31 2013 +0000
Revision:
3:935347ab4e12
Parent:
2:3dab90d3aac2
Child:
4:513c33bba011
Voor opschonen 2;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Socrates 0:b13a317308d1 1 #include "mbed.h"
Socrates 0:b13a317308d1 2 #include "MODSERIAL.h"
Socrates 0:b13a317308d1 3
Socrates 0:b13a317308d1 4 AnalogIn emg(PTB0);
Socrates 0:b13a317308d1 5 MODSERIAL pc(USBTX,USBRX);
Socrates 0:b13a317308d1 6
Socrates 0:b13a317308d1 7 volatile bool looptimerflag;
Socrates 0:b13a317308d1 8
Socrates 0:b13a317308d1 9 void setlooptimerflag(void)
Socrates 0:b13a317308d1 10 {
Socrates 0:b13a317308d1 11 looptimerflag = true;
Socrates 0:b13a317308d1 12 }
Socrates 0:b13a317308d1 13
Socrates 0:b13a317308d1 14
Socrates 0:b13a317308d1 15 int main()
Socrates 0:b13a317308d1 16 {
Socrates 0:b13a317308d1 17 Ticker looptimer;
Socrates 1:34202d107458 18 const float ts=0.001;
Socrates 1:34202d107458 19 looptimer.attach(setlooptimerflag,ts);
Socrates 1:34202d107458 20 float x,y,y1,x1,z1,yabs,z,yabs1,k,numh1,numh2,denh1,denh2,numl1,numl2,denl1,denl2;
Socrates 0:b13a317308d1 21 x1=0;
Socrates 0:b13a317308d1 22 y1=0;
Socrates 0:b13a317308d1 23 z1=0;
Socrates 0:b13a317308d1 24 yabs1=0;
Socrates 2:3dab90d3aac2 25
Socrates 2:3dab90d3aac2 26 numh1=0.996868235770807;
Socrates 2:3dab90d3aac2 27 numh2=-0.996868235770807;
Socrates 2:3dab90d3aac2 28 //denh1=1;
Socrates 2:3dab90d3aac2 29 denh2=-0.993736471541615;
Socrates 2:3dab90d3aac2 30 numl1=0.006244035046343;
Socrates 2:3dab90d3aac2 31 numl2=-0.006244035046343;
Socrates 2:3dab90d3aac2 32 //denl1=1;
Socrates 2:3dab90d3aac2 33 denl2=-0.987511929907314;
Socrates 0:b13a317308d1 34 pc.baud(115200);
Socrates 0:b13a317308d1 35
Socrates 0:b13a317308d1 36 while(1) {
Socrates 0:b13a317308d1 37 while(looptimerflag != true);
Socrates 0:b13a317308d1 38 looptimerflag = false;
Socrates 1:34202d107458 39 k=emg.read();
Socrates 1:34202d107458 40 x=(k-0.5)*2.0;
Socrates 2:3dab90d3aac2 41
Socrates 1:34202d107458 42 //High pass, 1 Hz
Socrates 2:3dab90d3aac2 43 //Waarom heb ik geen - gebruikt bij y1/denh2?
Socrates 2:3dab90d3aac2 44 //y=(y1/1.000994230391224-(0.996868235770807/1.000994230391224)*x1+(0.997865599482850/1.000994230391224)*x);
Socrates 2:3dab90d3aac2 45 //Met bovenstaande zijn de metingen gedaan.
Socrates 2:3dab90d3aac2 46 //Dat is
Socrates 2:3dab90d3aac2 47 //y=(y1/denh2-(numh1/denh2)*x1+(numh2/denh2)*x)
Socrates 2:3dab90d3aac2 48 y=x*numh1+x1*numh2-y1*denh2;
Socrates 1:34202d107458 49 //Rectify
Socrates 0:b13a317308d1 50 yabs=abs(y);
Socrates 1:34202d107458 51
Socrates 1:34202d107458 52 //Low pass, 1 Hz
Socrates 2:3dab90d3aac2 53 //Waarom heb ik geen - gebruikt bij z1/denl2?
Socrates 2:3dab90d3aac2 54 //z=(z1/1.000987999680353-(0.006244035046343/1.000987999680353)*yabs1+(0.006237787927252/1.000987999680353)*yabs);
Socrates 2:3dab90d3aac2 55 //Met bovenstaande zijn de metingen gedaan.
Socrates 2:3dab90d3aac2 56 //Dat is
Socrates 2:3dab90d3aac2 57 //z=(z1/denl2-(numl1/denl2)*y1+(numl2/denl2)*y)
Socrates 3:935347ab4e12 58 z=yabs*numl1+yabs1*numl2-z1*denl2;
Socrates 1:34202d107458 59
Socrates 2:3dab90d3aac2 60 pc.printf("%f\n\r",z);
Socrates 0:b13a317308d1 61 x1=x;
Socrates 0:b13a317308d1 62 y1=y;
Socrates 0:b13a317308d1 63 z1=z;
Socrates 0:b13a317308d1 64 yabs1=yabs;
Socrates 0:b13a317308d1 65 }
Socrates 0:b13a317308d1 66 }