Helper class for PHD. Fork of original code. Used for PHD_data_out... program. Changed bit precision from double to float and time seen to number of microseconds to increase accuracy.
Fork of Regrind by
Regrind.cpp@1:713783e6e8be, 2015-12-09 (annotated)
- Committer:
- mitchpang
- Date:
- Wed Dec 09 20:09:28 2015 +0000
- Revision:
- 1:713783e6e8be
- Parent:
- 0:3f8f88e0fac6
Changed Regrind class to use floating point precision instead of double. Changed time seen to number of microseconds instead of seconds to increase precision.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mitchpang | 0:3f8f88e0fac6 | 1 | #include "mbed.h" |
mitchpang | 0:3f8f88e0fac6 | 2 | #include "Regrind.h" |
mitchpang | 0:3f8f88e0fac6 | 3 | |
mitchpang | 0:3f8f88e0fac6 | 4 | Regrind::Regrind (){ |
mitchpang | 0:3f8f88e0fac6 | 5 | timeSeen = 0; |
mitchpang | 0:3f8f88e0fac6 | 6 | location = 0; |
mitchpang | 0:3f8f88e0fac6 | 7 | velocity = 0; |
mitchpang | 0:3f8f88e0fac6 | 8 | acceleration = 0; |
mitchpang | 0:3f8f88e0fac6 | 9 | divert = 0; |
mitchpang | 0:3f8f88e0fac6 | 10 | pastDiverter = 0; |
mitchpang | 0:3f8f88e0fac6 | 11 | |
mitchpang | 0:3f8f88e0fac6 | 12 | t = Timer(); |
mitchpang | 0:3f8f88e0fac6 | 13 | }; |
mitchpang | 0:3f8f88e0fac6 | 14 | |
mitchpang | 1:713783e6e8be | 15 | Regrind::Regrind (int tS, int l, float v, float a, int d, int pD){ |
mitchpang | 0:3f8f88e0fac6 | 16 | timeSeen = tS; |
mitchpang | 0:3f8f88e0fac6 | 17 | location = l; |
mitchpang | 0:3f8f88e0fac6 | 18 | velocity = v; |
mitchpang | 0:3f8f88e0fac6 | 19 | acceleration = a; |
mitchpang | 0:3f8f88e0fac6 | 20 | divert = d; |
mitchpang | 0:3f8f88e0fac6 | 21 | pastDiverter = pD; |
mitchpang | 0:3f8f88e0fac6 | 22 | |
mitchpang | 0:3f8f88e0fac6 | 23 | t.start(); |
mitchpang | 0:3f8f88e0fac6 | 24 | }; |
mitchpang | 0:3f8f88e0fac6 | 25 | |
mitchpang | 1:713783e6e8be | 26 | void Regrind::setVelocity(float distance){ |
mitchpang | 0:3f8f88e0fac6 | 27 | int timePassed_us = t.read_us(); |
mitchpang | 0:3f8f88e0fac6 | 28 | velocity = 2*distance/timePassed_us/1e6; |
mitchpang | 0:3f8f88e0fac6 | 29 | location = 2; |
mitchpang | 0:3f8f88e0fac6 | 30 | }; |
mitchpang | 0:3f8f88e0fac6 | 31 | |
mitchpang | 1:713783e6e8be | 32 | void Regrind::setAcceleration(float distance){ |
mitchpang | 0:3f8f88e0fac6 | 33 | t.stop(); |
mitchpang | 0:3f8f88e0fac6 | 34 | int timePassed_us = t.read_us(); |
mitchpang | 0:3f8f88e0fac6 | 35 | acceleration = (2*distance)/((timePassed_us/1e6)*(timePassed_us/1e6)); |
mitchpang | 0:3f8f88e0fac6 | 36 | location = 3; |
mitchpang | 0:3f8f88e0fac6 | 37 | }; |
mitchpang | 0:3f8f88e0fac6 | 38 | |
mitchpang | 0:3f8f88e0fac6 | 39 | void Regrind::clearRegrind(){ |
mitchpang | 0:3f8f88e0fac6 | 40 | timeSeen = 0; |
mitchpang | 0:3f8f88e0fac6 | 41 | location = 0; |
mitchpang | 0:3f8f88e0fac6 | 42 | velocity = 0; |
mitchpang | 0:3f8f88e0fac6 | 43 | acceleration = 0; |
mitchpang | 0:3f8f88e0fac6 | 44 | divert = 0; |
mitchpang | 0:3f8f88e0fac6 | 45 | pastDiverter = 0; |
mitchpang | 0:3f8f88e0fac6 | 46 | t.reset(); |
mitchpang | 0:3f8f88e0fac6 | 47 | }; |