Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: MODSERIAL mbed Encoder
main.cpp@3:935347ab4e12, 2013-10-16 (annotated)
- 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?
User | Revision | Line number | New 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 | } |