aboutsummaryrefslogtreecommitdiffstats
path: root/source/arduino/include.rst
diff options
context:
space:
mode:
authorMarti Bolivar <mbolivar@mit.edu>2010-10-25 21:15:28 -0400
committerMarti Bolivar <mbolivar@mit.edu>2010-11-17 12:44:28 -0500
commit2d429e75ce69e77f8c95490ac03881ec9aa0354a (patch)
treea3b810a6c75625b07a4b976e5d1e319c60e19a6b /source/arduino/include.rst
parent30ac55d80c18e93f9c39a6dd850c10f9e7fd92ac (diff)
downloadlibrambutan-2d429e75ce69e77f8c95490ac03881ec9aa0354a.tar.gz
librambutan-2d429e75ce69e77f8c95490ac03881ec9aa0354a.zip
arduino language reference nearing completion, properly CC-BY-SA 3.0 attributed
Diffstat (limited to 'source/arduino/include.rst')
-rw-r--r--source/arduino/include.rst88
1 files changed, 57 insertions, 31 deletions
diff --git a/source/arduino/include.rst b/source/arduino/include.rst
index 6d53801..da124e5 100644
--- a/source/arduino/include.rst
+++ b/source/arduino/include.rst
@@ -1,42 +1,68 @@
+.. highlight:: cpp
+
.. _arduino-include:
#include
========
-**#include** is used to include outside libraries in your sketch.
+``#include`` is used to include outside libraries in your sketch.
This gives the programmer access to a large group of standard C
-libraries (groups of pre-made functions), and also libraries
-written especially for Arduino.
-
-
-
-The main reference page for AVR C libraries (AVR is a reference to
-the Atmel chips on which the Arduino is based) is
-`here. <http://www.nongnu.org/avr-libc/user-manual/modules.html>`_
-
-
-
-Note that **#include**, similar to **#define**, has no semicolon
-terminator, and the compiler will yield cryptic error messages if
-you add one.
-
-
+libraries (groups of pre-made functions and data types), and also
+libraries written especially for Maple.
Example
-------
-This example includes a library that is used to put data into the
-program space *flash* instead of *ram*. This saves the ram space
-for dynamic memory needs and makes large lookup tables more
-practical.
-
-
-
-::
-
- #include <avr/pgmspace.h>
-
- prog_uint16_t myConstants[] PROGMEM = {0, 21140, 702 , 9128, 0, 25764, 8456,
- 0,0,0,0,0,0,0,0,29810,8968,29762,29762,4500};
-
+This example (from the `Arduino LiquidCrystal Tutorial
+<http://arduino.cc/en/Tutorial/LiquidCrystal>`_) includes a library
+that is used to control :ref:`LCD displays <liquid-crystal>`::
+
+ // include the library code:
+ #include <LiquidCrystal.h>
+
+ // initialize the library with the numbers of the interface pins
+ LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
+
+ void setup() {
+ // set up the LCD's number of columns and rows:
+ lcd.begin(16, 2);
+ // Print a message to the LCD.
+ lcd.print("hello, world!");
+ }
+
+ void loop() {
+ // set the cursor to column 0, line 1
+ // (note: line 1 is the second row, since counting begins with 0):
+ lcd.setCursor(0, 1);
+ // print the number of seconds since reset:
+ lcd.print(millis()/1000);
+ }
+
+Note that a ``#include`` line, like :ref:`#define <arduino-define>`,
+has **no semicolon**. The compiler will print strange error messages
+if you add one.
+
+C Standard Library
+------------------
+
+The standard C library that comes with Maple is called `newlib
+<http://sourceware.org/newlib/>`_. Its main sources of documentation
+are its `main reference <http://sourceware.org/newlib/libc.html>`_
+page and its `math functions
+<http://sourceware.org/newlib/libm.html>`_ reference page. Here's an
+example that imports the math.h library in order to take the `cube
+root <http://en.wikipedia.org/wiki/Cube_root>`_ of a number::
+
+ #include <math.h>
+
+ void setup() {
+ // no setup necessary
+ }
+
+ void loop() {
+ // "cbrt" stands for "cube root"
+ double cubeRootOf3 = cbrt(3.0);
+ // prints a number that is approximately the cube root of 3:
+ SerialUSB.println(cubeRootOf3);
+ }