From 7fd798f71d7283245b1b43e38134c6d233861775 Mon Sep 17 00:00:00 2001 From: Marti Bolivar Date: Thu, 7 Oct 2010 12:40:02 -0400 Subject: language reference --- source/language.rst | 329 +++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 290 insertions(+), 39 deletions(-) (limited to 'source') diff --git a/source/language.rst b/source/language.rst index edc027d..eee4fe5 100644 --- a/source/language.rst +++ b/source/language.rst @@ -30,49 +30,300 @@ Unique Maple Additions filename and line number where the particular assertion failed. Including assertions in a program increases the program size. When - using libmaple from the command line, they can be silently - disabled by setting the ``DEBUG_LEVEL`` variable to ``DEBUG_NONE`` - in `libmaple.h <>`; in this case all assertions pass without any - lost clock cycles. + using libmaple **from the command line only**, they can be + disabled by making the definition + + ``#define DEBUG_LEVEL DEBUG_NONE`` + + before including either wirish or libmaple. In this case, all + assertions will pass without any lost clock cycles. Note that + this will **not work in the IDE**; even with this definition, + assertions will still be enabled. Arduino Documentation Links --------------------------- -.. .. list-table:: Frozen Delights! -.. :widths: 15 10 30 -.. :header-rows: 1 - -.. * - Treat -.. - Quantity -.. - Description -.. * - Albatross -.. - 2.99 -.. - On a stick! -.. * - Crunchy Frog -.. - 1.49 -.. - If we took the bones out, it wouldn't be -.. crunchy, now would it? -.. * - Gannet Ripple -.. - 1.99 -.. - On a stick! - -.. ===== ===== ======= -.. A B A and B -.. ===== ===== ======= -.. False False False -.. True False False -.. False True False -.. True True True -.. ===== ===== ======= - -.. +------------------------+------------+----------+----------+ -.. | Header row, column 1 | Header 2 | Header 3 | Header 4 | -.. | (header rows optional) | | | | -.. +========================+============+==========+==========+ -.. | body row 1, column 1 | column 2 | column 3 | column 4 | -.. +------------------------+------------+----------+----------+ -.. | body row 2 | ... | ... | | -.. +------------------------+------------+----------+----------+ +(This table was copied from http://arduino.cc/en/Reference/Extended). + ++------------------------------------+------------------------------------+-----------------------------------------+ +| Structure | Variables | Functions | +| | | | ++====================================+====================================+=========================================+ +| |**Constants** |**Digital I/O** | +|* `setup()`_ | | | +| |* `HIGH`_ | `LOW`_ |* `pinMode()`_ | +|* `loop()`_ | | | +| |* `INPUT`_ | `OUTPUT`_ |* `digitalWrite()`_ | +| | | | +|**Control Structures** |* `true`_ | `false`_ |* `digitalRead()`_ | +| | | | +|* `if`_ |* `integer constants`_ | | +| | |**Analog I/O** | +|* `if...else`_ |* `floating point constants`_ | | +| | |* `analogReference()`_ | +|* `for`_ | | | +| |**Data Types** |* `analogRead()`_ | +|* `switch/case`_ | | | +| |* `void`_ |* `analogWrite()`_ - PWM | +|* `while`_ | | | +| |* `boolean`_ | | +|* `do...while`_ | |**Advanced I/O** | +| |* `char`_ | | +|* `break`_ | |* `tone()`_ | +| |* `unsigned char`_ | | +|* `continue`_ | |* `noTone()`_ | +| |* `byte`_ | | +|* `return`_ | |* `shiftOut()`_ | +| |* `int`_ | | +|* `goto`_ | |* `pulseIn()`_ | +| |* `unsigned int`_ | | +| | | | +|**Further syntax** |* `word`_ |**Time** | +| | | | +|* `;`_ (semicolon) |* `long`_ |* `millis()`_ | +| | | | +|* `{}`_ (curly braces) |* `unsigned long`_ |* `micros()`_ | +| | | | +|* `//`_ (single line comment) |* `float`_ |* `delay()`_ | +| | | | +|* `/\* \*/`_ (multi-line comment) |* `double`_ |* `delayMicroseconds()`_ | +| | | | +|* `#define`_ |* `string`_ | | +| | |**Math** | +|* `#include`_ |* `array`_ | | +| | |* `min()`_ | +| | | | +|**Arithmetic Operators** |**Conversion** |* `max()`_ | +| | | | +|* `=`_ (assignment operator) |* `char()`_ |* `abs()`_ | +| | | | +|* `+`_ (addition) |* `byte()`_ |* `constrain()`_ | +| | | | +|* `-`_ (subtraction) |* `int()`_ |* `map()`_ | +| | | | +|* `*`_ (multiplication) |* `word()`_ |* `pow()`_ | +| | | | +|* `/`_ (division) |* `long()`_ |* `sqrt()`_ | +| | | | +|* `%`_ (modulo) |* `float()`_ | | +| | |**Trigonometry** | +| | | | +|**Comparison Operators** |**Variable Scope & Qualifiers** |* `sin()`_ | +| | | | +|* `==`_ (equal to) |* `variable scope`_ |* `cos()`_ | +| | | | +|* `!=`_ (not equal to) |* `static`_ |* `tan()`_ | +| | | | +|* `<`_ (less than) |* `volatile`_ | | +| | |**Random Numbers** | +|* `>`_ (greater than) |* `const`_ | | +| | |* `randomSeed()`_ | +|* `<=`_ (less than or equal to) | | | +| |**Utilities** |* `random()`_ | +|* `>=`_ (greater than or equal to) | | | +| |* `sizeof()`_ (sizeof operator) | | +| | |**Bits and Bytes** | +|**Boolean Operators** | | | +| | |* `lowByte()`_ | +|* `&&`_ (and) | | | +| | |* `highByte()`_ | +|* `||`_ (or) | | | +| | |* `bitRead()`_ | +|* `!`_ (not) | | | +| | |* `bitWrite()`_ | +| | | | +|**Pointer Access Operators** | |* `bitSet()`_ | +| | | | +|* `* dereference operator`_ | |* `bitClear()`_ | +| | | | +|* `& reference operator`_ | |* `bit()`_ | +| | | | +| | | | +|**Bitwise Operators** | |**External Interrupts** | +| | | | +|* `&`_ (bitwise and) | |For more information on external | +| | |interrupts on Maple, see | +|* `|`_ (bitwise or) | |`our reference page`_. | +| | | | +|* `^`_ (bitwise xor) | | | +| | |* `attachInterrupt()`_ | +|* `~`_ (bitwise not) | | | +| | |* `detachInterrupt()`_ | +|* `<<`_ (shift left) | | | +| | | | +|* `>>`_ (shift right) | |**Interrupts** | +| | | | +| | |* `interrupts()`_ | +|**Compound Operators** | | | +| | |* `noInterrupts()`_ | +|* `++`_ (increment) | | | +| | | | +|* `- -`_ (decrement) | |**Communication** | +| | | | +|* `+=`_ (compound addition) | |* `Serial`_ | +| | | | +|* `-=`_ (compound subtraction) | |Looking for something else? Try the list | +| | |of `community-contributed code`_. | +|* `*=`_ (compound multiplication) | | | +| | | | +|* `/=`_ (compound division) | | | +| | | | +|* `&=`_ (compound bitwise and) | | | +| | | | +|* `|=`_ (compound bitwise or) | | | +| | | | ++------------------------------------+------------------------------------+-----------------------------------------+ + +.. _setup(): http://arduino.cc/en/Reference/Setup +.. _loop(): http://arduino.cc/en/Reference/Loop +.. _if: http://arduino.cc/en/Reference/If +.. _if...else: http://arduino.cc/en/Reference/Else +.. _for: http://arduino.cc/en/Reference/For +.. _switch/case: http://arduino.cc/en/Reference/SwitchCase +.. _while: http://arduino.cc/en/Reference/While +.. _do...while: http://arduino.cc/en/Reference/DoWhile +.. _break: http://arduino.cc/en/Reference/Break +.. _continue: http://arduino.cc/en/Reference/Continue +.. _return: http://arduino.cc/en/Reference/Return +.. _goto: http://arduino.cc/en/Reference/Goto + +.. _;: http://arduino.cc/en/Reference/SemiColon +.. _{}: http://arduino.cc/en/Reference/Braces +.. _//: http://arduino.cc/en/Reference/Comments +.. _/\* \*/: http://arduino.cc/en/Reference/Comments +.. _#define: http://arduino.cc/en/Reference/Define +.. _#include: http://arduino.cc/en/Reference/Include + +.. _=: http://arduino.cc/en/Reference/Assignment +.. _+: http://arduino.cc/en/Reference/Arithmetic +.. _-: http://arduino.cc/en/Reference/Arithmetic +.. _*: http://arduino.cc/en/Reference/Arithmetic +.. _/: http://arduino.cc/en/Reference/Arithmetic +.. _%: http://arduino.cc/en/Reference/Modulo + +.. _==: http://arduino.cc/en/Reference/If +.. _!=: http://arduino.cc/en/Reference/If +.. _<: http://arduino.cc/en/Reference/If +.. _>: http://arduino.cc/en/Reference/If +.. _<=: http://arduino.cc/en/Reference/If +.. _>=: http://arduino.cc/en/Reference/If + +.. _&&: http://arduino.cc/en/Reference/Boolean +.. _||: http://arduino.cc/en/Reference/Boolean +.. _!: http://arduino.cc/en/Reference/Boolean + +.. _* dereference operator: http://arduino.cc/en/Reference/Pointer +.. _& reference operator: http://arduino.cc/en/Reference/Pointer + +.. _&: http://arduino.cc/en/Reference/BitwiseAnd +.. _|: http://arduino.cc/en/Reference/BitwiseAnd +.. _^: http://arduino.cc/en/Reference/BitwiseAnd +.. _~: http://arduino.cc/en/Reference/BitwiseXorNot +.. _<<: http://arduino.cc/en/Reference/Bitshift +.. _>>: http://arduino.cc/en/Reference/Bitshift + +.. _++: http://arduino.cc/en/Reference/Increment +.. FIXME can't freaking get two hyphens to show up! sphinx turns "--" +.. into an endash, whatever, fine, try to escape like "\-\-", that +.. ALSO becomes endash (!@#$), damn, well, maybe someone else is +.. eating my slash, try "\\-\\-", nope, that turns into a motherfing +.. \-\-. i hate everything. +.. _- -: http://arduino.cc/en/Reference/Increment +.. _+=: http://arduino.cc/en/Reference/IncrementCompound +.. _-=: http://arduino.cc/en/Reference/IncrementCompound +.. _*=: http://arduino.cc/en/Reference/IncrementCompound +.. _/=: http://arduino.cc/en/Reference/IncrementCompound +.. _&=: http://arduino.cc/en/Reference/BitwiseCompound +.. _|=: http://arduino.cc/en/Reference/BitwiseCompound + +.. _HIGH: http://arduino.cc/en/Reference/Constants +.. _LOW: http://arduino.cc/en/Reference/Constants +.. _INPUT: http://arduino.cc/en/Reference/Constants +.. _OUTPUT: http://arduino.cc/en/Reference/Constants +.. _true: http://arduino.cc/en/Reference/Constants +.. _false: http://arduino.cc/en/Reference/Constants +.. _integer constants: http://arduino.cc/en/Reference/IntegerConstants +.. _floating point constants: http://arduino.cc/en/Reference/Fpconstants + +.. _void: http://arduino.cc/en/Reference/Void +.. _boolean: http://arduino.cc/en/Reference/BooleanVariables +.. _char: http://arduino.cc/en/Reference/Char +.. _unsigned char: http://arduino.cc/en/Reference/UnsignedChar +.. _byte: http://arduino.cc/en/Reference/Byte +.. _int: http://arduino.cc/en/Reference/Int +.. _unsigned int: http://arduino.cc/en/Reference/UnsignedInt +.. _word: http://arduino.cc/en/Reference/Word +.. _long: http://arduino.cc/en/Reference/Long +.. _unsigned long: http://arduino.cc/en/Reference/UnsignedLong +.. _float: http://arduino.cc/en/Reference/Float +.. _double: http://arduino.cc/en/Reference/Double +.. _string: http://arduino.cc/en/Reference/String +.. _array: http://arduino.cc/en/Reference/Array + +.. _char(): http://arduino.cc/en/Reference/CharCast +.. _byte(): http://arduino.cc/en/Reference/ByteCast +.. _int(): http://arduino.cc/en/Reference/IntCast +.. _word(): http://arduino.cc/en/Reference/WordCast +.. _long(): http://arduino.cc/en/Reference/LongCast +.. _float(): http://arduino.cc/en/Reference/FloatCast + +.. _variable scope: http://arduino.cc/en/Reference/Scope +.. _static: http://arduino.cc/en/Reference/Static +.. _volatile: http://arduino.cc/en/Reference/Volatile +.. _const: http://arduino.cc/en/Reference/Const +.. _sizeof(): http://arduino.cc/en/Reference/Sizeof + +.. _pinMode(): http://arduino.cc/en/Reference/PinMode +.. _digitalWrite(): http://arduino.cc/en/Reference/DigitalWrite +.. _digitalRead(): http://arduino.cc/en/Reference/DigitalRead + +.. _analogReference(): http://arduino.cc/en/Reference/AnalogReference +.. _analogRead(): http://arduino.cc/en/Reference/AnalogRead +.. _analogWrite(): http://arduino.cc/en/Reference/AnalogWrite + +.. _tone(): http://arduino.cc/en/Reference/Tone +.. _noTone(): http://arduino.cc/en/Reference/NoTone +.. _shiftOut(): http://arduino.cc/en/Reference/ShiftOut +.. _pulseIn(): http://arduino.cc/en/Reference/PulseIn + +.. _millis(): http://arduino.cc/en/Reference/Millis +.. _micros(): http://arduino.cc/en/Reference/Micros +.. _delay(): http://arduino.cc/en/Reference/Delay +.. _delayMicroseconds(): http://arduino.cc/en/Reference/DelayMicroseconds + +.. _min(): http://arduino.cc/en/Reference/Min +.. _max(): http://arduino.cc/en/Reference/Max +.. _abs(): http://arduino.cc/en/Reference/Abs +.. _constrain(): http://arduino.cc/en/Reference/Constrain + +.. _map(): http://arduino.cc/en/Reference/Map +.. _pow(): http://arduino.cc/en/Reference/Pow +.. _sqrt(): http://arduino.cc/en/Reference/Sqrt + +.. _sin(): http://arduino.cc/en/Reference/Sin +.. _cos(): http://arduino.cc/en/Reference/Cos +.. _tan(): http://arduino.cc/en/Reference/Tan + +.. _randomSeed(): http://arduino.cc/en/Reference/RandomSeed +.. _random(): http://arduino.cc/en/Reference/Random + +.. _lowByte(): http://arduino.cc/en/Reference/LowByte +.. _highByte(): http://arduino.cc/en/Reference/HighByte +.. _bitRead(): http://arduino.cc/en/Reference/BitRead +.. _bitWrite(): http://arduino.cc/en/Reference/BitWrite +.. _bitSet(): http://arduino.cc/en/Reference/BitSet +.. _bitClear(): http://arduino.cc/en/Reference/BitClear +.. _bit(): http://arduino.cc/en/Reference/Bit + +.. _our reference page: http://leaflabs.com/docs/external-interrupts/ +.. _attachInterrupt(): http://arduino.cc/en/Reference/AttachInterrupt +.. _detachInterrupt(): http://arduino.cc/en/Reference/DetachInterrupt + +.. _interrupts(): http://arduino.cc/en/Reference/Interrupts +.. _noInterrupts(): http://arduino.cc/en/Reference/NoInterrupts + +.. _Serial: http://arduino.cc/en/Reference/Serial +.. _community-contributed code: http://www.arduino.cc/playground/Main/GeneralCodeLibrary Recommended Reading ------------------- -- cgit v1.2.3