René Bohne / ArduinoHAL

Dependents:   Potentiometer

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers wiring.h Source File

wiring.h

00001 /*
00002   wiring.h - Partial implementation of the Wiring API for the ATmega8.
00003   Part of Arduino - http://www.arduino.cc/
00004 
00005   Copyright (c) 2005-2006 David A. Mellis
00006 
00007   This library is free software; you can redistribute it and/or
00008   modify it under the terms of the GNU Lesser General Public
00009   License as published by the Free Software Foundation; either
00010   version 2.1 of the License, or (at your option) any later version.
00011 
00012   This library is distributed in the hope that it will be useful,
00013   but WITHOUT ANY WARRANTY; without even the implied warranty of
00014   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015   Lesser General Public License for more details.
00016 
00017   You should have received a copy of the GNU Lesser General
00018   Public License along with this library; if not, write to the
00019   Free Software Foundation, Inc., 59 Temple Place, Suite 330,
00020   Boston, MA  02111-1307  USA
00021 
00022   $Id$
00023 */
00024 
00025 #ifndef Wiring_h
00026 #define Wiring_h
00027 
00028 #include "binary.h"
00029 
00030 
00031 #define uint8_t int
00032 #define boolean int
00033 #define byte int
00034 
00035 #define HIGH 0x1
00036 #define LOW  0x0
00037 
00038 #define INPUT 0x0
00039 #define OUTPUT 0x1
00040 
00041 #define true 0x1
00042 #define false 0x0
00043 
00044 #define PI 3.1415926535897932384626433832795
00045 #define HALF_PI 1.5707963267948966192313216916398
00046 #define TWO_PI 6.283185307179586476925286766559
00047 #define DEG_TO_RAD 0.017453292519943295769236907684886
00048 #define RAD_TO_DEG 57.295779513082320876798154814105
00049 
00050 #define SERIAL  0x0
00051 #define DISPLAY 0x1
00052 
00053 #define LSBFIRST 0
00054 #define MSBFIRST 1
00055 
00056 #define CHANGE 1
00057 #define FALLING 2
00058 #define RISING 3
00059 
00060 // undefine stdlib's abs if encountered
00061 #ifdef abs
00062 #undef abs
00063 #endif
00064 
00065 #define min(a,b) ((a)<(b)?(a):(b))
00066 #define max(a,b) ((a)>(b)?(a):(b))
00067 #define abs(x) ((x)>0?(x):-(x))
00068 #define constrain(amt,low,high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt)))
00069 #define round(x)     ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))
00070 #define radians(deg) ((deg)*DEG_TO_RAD)
00071 #define degrees(rad) ((rad)*RAD_TO_DEG)
00072 #define sq(x) ((x)*(x))
00073 
00074 #define interrupts() sei()
00075 #define noInterrupts() cli()
00076 
00077 #define clockCyclesPerMicrosecond() ( F_CPU / 1000000L )
00078 #define clockCyclesToMicroseconds(a) ( ((a) * 1000L) / (F_CPU / 1000L) )
00079 #define microsecondsToClockCycles(a) ( ((a) * (F_CPU / 1000L)) / 1000L )
00080 
00081 #define lowByte(w) ((uint8_t) ((w) & 0xff))
00082 #define highByte(w) ((uint8_t) ((w) >> 8))
00083 
00084 #define bitRead(value, bit) (((value) >> (bit)) & 0x01)
00085 #define bitSet(value, bit) ((value) |= (1UL << (bit)))
00086 #define bitClear(value, bit) ((value) &= ~(1UL << (bit)))
00087 #define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit))
00088 
00089 
00090 #define bit(b) (1UL << (b))
00091 
00092 
00093 
00094 void init(void);
00095 
00096 void pinMode(uint8_t, uint8_t);
00097 void digitalWrite(uint8_t, uint8_t);
00098 int digitalRead(uint8_t);
00099 int analogRead(uint8_t);
00100 void analogReference(uint8_t mode);
00101 void analogWrite(uint8_t, int);
00102 
00103 unsigned long millis(void);
00104 unsigned long micros(void);
00105 void delay(unsigned long);
00106 void delayMicroseconds(unsigned int us);
00107 unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout);
00108 
00109 void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val);
00110 uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder);
00111 
00112 void attachInterrupt(uint8_t, void (*)(void), int mode);
00113 void detachInterrupt(uint8_t);
00114 
00115 void setup(void);
00116 void loop(void);
00117 
00118 
00119 #endif