1d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen#ifndef WProgram_h
2d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen#define WProgram_h
3d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen
4d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen#include <stdlib.h>
5d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen#include <string.h>
6d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen#include <math.h>
7d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen
8d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen#include <avr/interrupt.h>
9d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen
10d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen#include "wiring.h"
11d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen
12d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen#ifdef __cplusplus
13d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen#include "WCharacter.h"
14d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen#include "WString.h"
15d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen#include "HardwareSerial.h"
16d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen
17d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenuint16_t makeWord(uint16_t w);
18d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenuint16_t makeWord(byte h, byte l);
19d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen
20d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen#define word(...) makeWord(__VA_ARGS__)
21d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen
22d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenunsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout = 1000000L);
23d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen
24d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenvoid tone(uint8_t _pin, unsigned int frequency, unsigned long duration = 0);
25d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenvoid noTone(uint8_t _pin);
26d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen
27d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen// WMath prototypes
28d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenlong random(long);
29d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenlong random(long, long);
30d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenvoid randomSeed(unsigned int);
31d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenlong map(long, long, long, long, long);
32d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen
33d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
34d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenconst static uint8_t A0 = 54;
35d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenconst static uint8_t A1 = 55;
36d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenconst static uint8_t A2 = 56;
37d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenconst static uint8_t A3 = 57;
38d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenconst static uint8_t A4 = 58;
39d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenconst static uint8_t A5 = 59;
40d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenconst static uint8_t A6 = 60;
41d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenconst static uint8_t A7 = 61;
42d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenconst static uint8_t A8 = 62;
43d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenconst static uint8_t A9 = 63;
44d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenconst static uint8_t A10 = 64;
45d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenconst static uint8_t A11 = 65;
46d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenconst static uint8_t A12 = 66;
47d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenconst static uint8_t A13 = 67;
48d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenconst static uint8_t A14 = 68;
49d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenconst static uint8_t A15 = 69;
50d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen#else
51d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenconst static uint8_t A0 = 14;
52d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenconst static uint8_t A1 = 15;
53d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenconst static uint8_t A2 = 16;
54d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenconst static uint8_t A3 = 17;
55d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenconst static uint8_t A4 = 18;
56d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenconst static uint8_t A5 = 19;
57d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenconst static uint8_t A6 = 20;
58d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chenconst static uint8_t A7 = 21;
59d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen#endif
60d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen
61d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen#endif
62d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen
63d5790d78880d4bd60be277ee20e53a851aa8c11Mike J. Chen#endif