annotate core/Utilities.cpp @ 39:638bc1ae2500 staging

Improved readibility of the DIGITAL code in the PRU, using register names instead of aliases and expanding some of the macros, removing unused macros. Binaries were not modified
author Giulio Moro <giuliomoro@yahoo.it>
date Wed, 13 May 2015 12:18:10 +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 }