annotate core/Utilities.cpp @ 40:419ce4ebfc4c staging

Further improvements in the PRU readibility (removed unnecssary defines and renamed r27_current back to reg_digital_current)
author Giulio Moro <giuliomoro@yahoo.it>
date Wed, 13 May 2015 12:23:37 +0100
parents 8a575ba3ab52
children 579c86316008
rev   line source
andrewm@0 1 /*
andrewm@0 2 * Utilities.cpp
andrewm@0 3 *
andrewm@0 4 * Created on: Oct 27, 2014
andrewm@0 5 * Author: parallels
andrewm@0 6 */
andrewm@0 7
andrewm@0 8 #include "../include/Utilities.h"
andrewm@0 9
andrewm@0 10 // map()
andrewm@0 11 //
andrewm@0 12 // Scale an input value from one range to another. Works like its Wiring language equivalent.
andrewm@0 13 // x is the value to scale; in_min and in_max are the input range; out_min and out_max
andrewm@0 14 // are the output range.
andrewm@0 15
andrewm@0 16 float map(float x, float in_min, float in_max, float out_min, float out_max)
andrewm@0 17 {
andrewm@0 18 return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
andrewm@0 19 }
andrewm@0 20
andrewm@0 21 // constrain()
andrewm@0 22 //
andrewm@0 23 // Clips an input value to be between two end points
andrewm@0 24 // x is the value to constrain; min_val and max_val are the range
andrewm@0 25
andrewm@0 26 float constrain(float x, float min_val, float max_val)
andrewm@0 27 {
andrewm@0 28 if(x < min_val) return min_val;
andrewm@0 29 if(x > max_val) return max_val;
andrewm@0 30 return x;
andrewm@0 31 }