Mirror actuator for RT2 lab

Dependencies:   FastPWM

Committer:
altb2
Date:
Sun May 02 08:55:44 2021 +0000
Revision:
16:28b6bb8a4b7f
Parent:
15:9f32f64eee5b
Final commit 4 students

Who changed what in which revision?

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