.

Dependents:  

Committer:
altb
Date:
Wed Oct 17 06:54:50 2018 +0000
Revision:
3:03e6c2a8a35a
...;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
altb 3:03e6c2a8a35a 1 /*
altb 3:03e6c2a8a35a 2 */
altb 3:03e6c2a8a35a 3
altb 3:03e6c2a8a35a 4 #include "Unwrapper_2pi.h"
altb 3:03e6c2a8a35a 5 #define pi 3.141592653589793
altb 3:03e6c2a8a35a 6 using namespace std;
altb 3:03e6c2a8a35a 7
altb 3:03e6c2a8a35a 8 Unwrapper_2pi::Unwrapper_2pi(void)
altb 3:03e6c2a8a35a 9 {
altb 3:03e6c2a8a35a 10 last_value = 0.0;
altb 3:03e6c2a8a35a 11 turns = 0;
altb 3:03e6c2a8a35a 12 }
altb 3:03e6c2a8a35a 13
altb 3:03e6c2a8a35a 14 Unwrapper_2pi::~Unwrapper_2pi() {}
altb 3:03e6c2a8a35a 15
altb 3:03e6c2a8a35a 16 void Unwrapper_2pi::reset(void)
altb 3:03e6c2a8a35a 17 {
altb 3:03e6c2a8a35a 18 last_value = 0.0;
altb 3:03e6c2a8a35a 19 turns = 0;
altb 3:03e6c2a8a35a 20 }
altb 3:03e6c2a8a35a 21
altb 3:03e6c2a8a35a 22 float Unwrapper_2pi::doStep(float in)
altb 3:03e6c2a8a35a 23 {
altb 3:03e6c2a8a35a 24 float temp = in + 2*pi*(float)turns;
altb 3:03e6c2a8a35a 25 if((temp - last_value) > pi){
altb 3:03e6c2a8a35a 26 temp -= 2*pi;
altb 3:03e6c2a8a35a 27 turns--;
altb 3:03e6c2a8a35a 28 }
altb 3:03e6c2a8a35a 29 else if((temp - last_value) < -pi){
altb 3:03e6c2a8a35a 30 temp += 2*pi;
altb 3:03e6c2a8a35a 31 turns++;
altb 3:03e6c2a8a35a 32 }
altb 3:03e6c2a8a35a 33 last_value = temp;
altb 3:03e6c2a8a35a 34 return (temp);
altb 3:03e6c2a8a35a 35 }