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@4:513c33bba011, 2013-10-16 (annotated)
- Committer:
- Socrates
- Date:
- Wed Oct 16 15:00:40 2013 +0000
- Revision:
- 4:513c33bba011
- Parent:
- 3:935347ab4e12
- Child:
- 5:1a1ce2f5cb66
Werkende filters. High 1e op 1 hz, low 2e op 2 hz.
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 | 4:513c33bba011 | 20 | float x,y,y1,y2,x1,z,z1,z2,yabs,yabs1,yabs2,k,numh1,numh2,denh1,denh2,numl1,numl2,numl3,denl1,denl2,denl3; |
Socrates | 0:b13a317308d1 | 21 | x1=0; |
Socrates | 0:b13a317308d1 | 22 | y1=0; |
Socrates | 4:513c33bba011 | 23 | y2=0; |
Socrates | 0:b13a317308d1 | 24 | z1=0; |
Socrates | 4:513c33bba011 | 25 | z2=0; |
Socrates | 0:b13a317308d1 | 26 | yabs1=0; |
Socrates | 4:513c33bba011 | 27 | yabs2=0; |
Socrates | 2:3dab90d3aac2 | 28 | |
Socrates | 2:3dab90d3aac2 | 29 | numh1=0.996868235770807; |
Socrates | 2:3dab90d3aac2 | 30 | numh2=-0.996868235770807; |
Socrates | 2:3dab90d3aac2 | 31 | //denh1=1; |
Socrates | 2:3dab90d3aac2 | 32 | denh2=-0.993736471541615; |
Socrates | 4:513c33bba011 | 33 | numl1=0.391302053991682*pow(10.0,-4.0); |
Socrates | 4:513c33bba011 | 34 | numl2=0.782604107983365*pow(10.0,-4.0); |
Socrates | 4:513c33bba011 | 35 | numl3=0.391302053991682*pow(10.0,-4.0); |
Socrates | 2:3dab90d3aac2 | 36 | //denl1=1; |
Socrates | 4:513c33bba011 | 37 | denl2=-1.982228929792529; |
Socrates | 4:513c33bba011 | 38 | denl3=0.982385450614126; |
Socrates | 0:b13a317308d1 | 39 | pc.baud(115200); |
Socrates | 0:b13a317308d1 | 40 | |
Socrates | 0:b13a317308d1 | 41 | while(1) { |
Socrates | 0:b13a317308d1 | 42 | while(looptimerflag != true); |
Socrates | 0:b13a317308d1 | 43 | looptimerflag = false; |
Socrates | 1:34202d107458 | 44 | k=emg.read(); |
Socrates | 1:34202d107458 | 45 | x=(k-0.5)*2.0; |
Socrates | 2:3dab90d3aac2 | 46 | |
Socrates | 1:34202d107458 | 47 | //High pass, 1 Hz |
Socrates | 4:513c33bba011 | 48 | //1e orde |
Socrates | 2:3dab90d3aac2 | 49 | y=x*numh1+x1*numh2-y1*denh2; |
Socrates | 4:513c33bba011 | 50 | |
Socrates | 1:34202d107458 | 51 | //Rectify |
Socrates | 0:b13a317308d1 | 52 | yabs=abs(y); |
Socrates | 1:34202d107458 | 53 | |
Socrates | 4:513c33bba011 | 54 | //Low pass, 2 Hz |
Socrates | 4:513c33bba011 | 55 | //2e orde |
Socrates | 4:513c33bba011 | 56 | z=yabs*numl1+yabs1*numl2+yabs2*numl3-z1*denl2-z2*denl3; |
Socrates | 1:34202d107458 | 57 | |
Socrates | 2:3dab90d3aac2 | 58 | pc.printf("%f\n\r",z); |
Socrates | 0:b13a317308d1 | 59 | x1=x; |
Socrates | 4:513c33bba011 | 60 | y2=y1; |
Socrates | 0:b13a317308d1 | 61 | y1=y; |
Socrates | 4:513c33bba011 | 62 | z2=z1; |
Socrates | 0:b13a317308d1 | 63 | z1=z; |
Socrates | 4:513c33bba011 | 64 | yabs2=yabs; |
Socrates | 0:b13a317308d1 | 65 | yabs1=yabs; |
Socrates | 0:b13a317308d1 | 66 | } |
Socrates | 0:b13a317308d1 | 67 | } |