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 Mitchell Pang

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?

UserRevisionLine numberNew 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 };