mirror of
https://github.com/RobTillaart/Arduino.git
synced 2024-09-19 16:46:11 -04:00
+ remove fastmap to get naming right (CamelCase)
This commit is contained in:
parent
520cd5c269
commit
e81fca5089
@ -1,49 +0,0 @@
|
||||
//
|
||||
// FILE: constrainedMap.ino
|
||||
// AUTHOR: Rob Tillaart
|
||||
// VERSION: 0.1.00
|
||||
// PURPOSE:
|
||||
// DATE: 2014-11-02
|
||||
// URL:
|
||||
//
|
||||
// Released to the public domain
|
||||
//
|
||||
|
||||
#include "fastMap.h"
|
||||
|
||||
fastmap mapper;
|
||||
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(115200);
|
||||
Serial.print("Start constrainedMap demo\nlib version: ");
|
||||
Serial.println(FASTMAP_LIB_VERSION);
|
||||
Serial.println();
|
||||
|
||||
mapper.init(0, 10, 0, 300);
|
||||
|
||||
Serial.println("I\tMAP\tLCM\tUCM\tCM");
|
||||
for (int i = -5; i < 20; i++)
|
||||
{
|
||||
float a = map(i, 0, 10, 0, 300);
|
||||
float b = mapper.lowerConstrainedMap(i);
|
||||
float c = mapper.upperConstrainedMap(i);
|
||||
float d = mapper.constrainedMap(i);
|
||||
Serial.print(i);
|
||||
Serial.print("\t");
|
||||
Serial.print(a);
|
||||
Serial.print("\t");
|
||||
Serial.print(b);
|
||||
Serial.print("\t");
|
||||
Serial.print(c);
|
||||
Serial.print("\t");
|
||||
Serial.println(d);
|
||||
}
|
||||
Serial.println("\ndone...");
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -1,70 +0,0 @@
|
||||
//
|
||||
// FILE: fastMapDemo.ino
|
||||
// AUTHOR: Rob Tillaart
|
||||
// VERSION: 0.1.01
|
||||
// PURPOSE: demo of a faster mapper function
|
||||
// DATE: 2014-11-02
|
||||
// URL:
|
||||
//
|
||||
// Released to the public domain
|
||||
//
|
||||
|
||||
#include "fastMap.h"
|
||||
|
||||
uint32_t start;
|
||||
uint32_t stop;
|
||||
uint32_t reference;
|
||||
|
||||
volatile long zz = 3000, yy = 20000;
|
||||
volatile float x;
|
||||
|
||||
fastmap mapper;
|
||||
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(115200);
|
||||
Serial.print("Start fastMapDemo\nlib version: ");
|
||||
Serial.println(FASTMAP_LIB_VERSION);
|
||||
Serial.println();
|
||||
|
||||
// Get a non optimizable value;
|
||||
int z = analogRead(A0);
|
||||
|
||||
// REFERENCE
|
||||
start = micros();
|
||||
for (int i = 0; i < 10000; i++)
|
||||
{
|
||||
x = map(z, 0, 1023, yy, zz);
|
||||
}
|
||||
stop = micros();
|
||||
reference = stop-start;
|
||||
Serial.println(reference);
|
||||
Serial.print(z);
|
||||
Serial.print(" -> ");
|
||||
Serial.println(x);
|
||||
Serial.println();
|
||||
|
||||
// FASTMAP
|
||||
mapper.init(0, 1023, yy, zz);
|
||||
start = micros();
|
||||
for (int i = 0; i < 10000; i++)
|
||||
{
|
||||
x = mapper.map(z);
|
||||
}
|
||||
stop = micros();
|
||||
Serial.println(stop-start);
|
||||
Serial.print(z);
|
||||
Serial.print(" -> ");
|
||||
Serial.println(x);
|
||||
|
||||
// GAIN
|
||||
Serial.print("Performance factor: ");
|
||||
Serial.println(reference/(stop-start));
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
}
|
||||
//
|
||||
// END OF FILE
|
||||
//
|
@ -1,56 +0,0 @@
|
||||
//
|
||||
// FILE: fastMap.cpp
|
||||
// AUTHOR: Rob Tillaart
|
||||
// VERSION: 0.1.02
|
||||
// PURPOSE: class implementation of map function - library for Arduino
|
||||
// URL: http://forum.arduino.cc/index.php?topic=276194
|
||||
//
|
||||
// HISTORY:
|
||||
// 0.1.02 squized the code (first public version)
|
||||
// 0.1.01 refactor
|
||||
// 0.1.00 initial version
|
||||
//
|
||||
|
||||
#include "fastMap.h"
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
//
|
||||
// PUBLIC
|
||||
//
|
||||
|
||||
void fastmap::init(float in_min, float in_max, float out_min, float out_max)
|
||||
{
|
||||
_in_min = in_min;
|
||||
_in_max = in_max;
|
||||
_out_min = out_min;
|
||||
_out_max = out_max;
|
||||
_factor = (out_max - out_min)/(in_max - in_min);
|
||||
_base = out_min - in_min * _factor;
|
||||
// Serial.println(_in_min);
|
||||
// Serial.println(_in_max);
|
||||
// Serial.println(_out_min);
|
||||
// Serial.println(_out_max);
|
||||
// Serial.println(_factor);
|
||||
}
|
||||
|
||||
float fastmap::constrainedMap(float value)
|
||||
{
|
||||
if (value <= _in_min) return _out_min;
|
||||
if (value >= _in_max) return _out_max;
|
||||
return this->map(value);
|
||||
}
|
||||
|
||||
float fastmap::lowerConstrainedMap(float value)
|
||||
{
|
||||
if (value <= _in_min) return _out_min;
|
||||
return this->map(value);
|
||||
}
|
||||
|
||||
float fastmap::upperConstrainedMap(float value)
|
||||
{
|
||||
if (value >= _in_max) return _out_max;
|
||||
return this->map(value);
|
||||
}
|
||||
//
|
||||
// END OF FILE
|
||||
//
|
@ -1,43 +0,0 @@
|
||||
//
|
||||
// FILE: fastMap.h
|
||||
// AUTHOR: Rob Tillaart
|
||||
// VERSION: 0.1.02
|
||||
// PURPOSE: class implementation of map function - library for Arduino
|
||||
// URL: http://forum.arduino.cc/index.php?topic=276194
|
||||
//
|
||||
// HISTORY:
|
||||
// see fastMap.cpp file
|
||||
//
|
||||
|
||||
#ifndef fastMap_h
|
||||
#define fastMap_h
|
||||
|
||||
#if ARDUINO < 100
|
||||
#include <WProgram.h>
|
||||
#else
|
||||
#include <Arduino.h>
|
||||
#endif
|
||||
|
||||
#define FASTMAP_LIB_VERSION "0.1.02"
|
||||
|
||||
#define USE_CONSTRAINED_MAP
|
||||
|
||||
class fastmap
|
||||
{
|
||||
public:
|
||||
void init(float in_min, float in_max, float out_min, float out_max);
|
||||
|
||||
float inline map(float value) { return _base + value * _factor; }
|
||||
float constrainedMap(float value);
|
||||
float lowerConstrainedMap(float value);
|
||||
float upperConstrainedMap(float value);
|
||||
|
||||
private:
|
||||
float _in_min, _in_max, _out_min, _out_max;
|
||||
float _factor, _base;
|
||||
};
|
||||
|
||||
#endif
|
||||
//
|
||||
// END OF FILE
|
||||
//
|
Loading…
Reference in New Issue
Block a user