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