aboutsummaryrefslogtreecommitdiffstats
path: root/docs/source/lang/map.rst
diff options
context:
space:
mode:
authorMarti Bolivar <mbolivar@mit.edu>2010-11-29 01:49:26 -0500
committerMarti Bolivar <mbolivar@mit.edu>2010-11-29 01:49:26 -0500
commit078edc158da7906ba72e7e6528e1a811e07270e7 (patch)
tree1bc7b2e8137fb5ebfc7b59d59294d7adb9e95468 /docs/source/lang/map.rst
parent5e587be27a7c3bd854b686952a5c9637a2432ff0 (diff)
downloadlibrambutan-078edc158da7906ba72e7e6528e1a811e07270e7.tar.gz
librambutan-078edc158da7906ba72e7e6528e1a811e07270e7.zip
Finished converting the Arduino docs
Diffstat (limited to 'docs/source/lang/map.rst')
-rw-r--r--docs/source/lang/map.rst124
1 files changed, 35 insertions, 89 deletions
diff --git a/docs/source/lang/map.rst b/docs/source/lang/map.rst
index 40b12a8..79122b3 100644
--- a/docs/source/lang/map.rst
+++ b/docs/source/lang/map.rst
@@ -1,122 +1,68 @@
-.. _lang-map:
-
-map(value, fromLow, fromHigh, toLow, toHigh)
-============================================
-
-Description
------------
-
-Re-maps a number from one range to another. That is, a **value** of
-**fromLow** would get mapped to **toLow**, a value of **fromHigh**
-to **toHigh**, values in-between to values in-between, etc.
-
+.. highlight:: cpp
+.. _lang-map:
-Does not constrain values to within the range, because out-of-range
-values are sometimes intended and useful. The constrain() function
-may be used either before or after this function, if limits to the
-ranges are desired.
+map()
+=====
+Re-maps a number from one range to another.
+.. contents:: Contents
+ :local:
-Note that the "lower bounds" of either range may be larger or
-smaller than the "upper bounds" so the map() function may be used
-to reverse a range of numbers, for example
+Library Documentation
+---------------------
+.. doxygenfunction:: map
+Discussion
+----------
-``y = map(x, 1, 50, 50, 1);``
+``map()`` does not constrain values to within the range, because
+out-of-range values are sometimes intended and useful. The
+:ref:`constrain() <lang-constrain>` macro may be used either before or
+after this function, if limits to the ranges are desired.
+Note that the "lower bounds" of either range may be larger or smaller
+than the "upper bounds" so that ``map()`` may be used to reverse a
+range of numbers; for example::
+ y = map(x, 1, 50, 50, 1);
The function also handles negative numbers well, so that this
-example
-
-
-
-``y = map(x, 1, 50, 50, -100);``
-
-
+example ::
-is also valid and works well.
+ y = map(x, 1, 50, 50, -100);
+is also valid.
-
-The map() function uses integer math so will not generate
+The ``map()`` function uses integer math (its arguments and return
+values all have type :ref:`long <lang-long>`), so it will not generate
fractions, when the math might indicate that it should do so.
-Fractional remainders are truncated, and are not rounded or
-averaged.
-
-
-
-Parameters
-----------
-
-value: the number to map
-
-
-
-fromLow: the lower bound of the value's current range
-
-
-
-fromHigh: the upper bound of the value's current range
-
-
-
-toLow: the lower bound of the value's target range
-
-
-
-toHigh: the upper bound of the value's target range
-
-
-
-Returns
--------
-
-The mapped value.
-
-
+Fractional remainders are truncated, and are not rounded or averaged.
Example
-------
::
- /* Map an analog value to 8 bits (0 to 255) */
- void setup() {}
+ /* Map an ADC reading (12 bits) to 16-bit PWM (0 to 65,535) */
- void loop()
- {
- int val = analogRead(0);
- val = map(val, 0, 1023, 0, 255);
- analogWrite(9, val);
+ void setup() {
+ pinMode(0, INPUT_ANALOG);
+ pinMode(9, PWM);
}
-
-
-Appendix
-~~~~~~~~
-
-For the mathematically inclined, here's the whole function
-
-
-
-::
-
- long map(long x, long in_min, long in_max, long out_min, long out_max)
- {
- return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
+ void loop() {
+ int val = analogRead(0);
+ val = map(val, 0, 4095, 0, 65535);
+ analogWrite(9, val);
}
-
See Also
--------
-
-- `constrain <http://arduino.cc/en/Reference/Constrain>`_\ ()
-
+- :ref:`constrain() <lang-constrain>`
.. include:: cc-attribution.txt