summaryrefslogtreecommitdiff
path: root/lib/Arduino.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Arduino.h')
-rw-r--r--lib/Arduino.h78
1 files changed, 54 insertions, 24 deletions
diff --git a/lib/Arduino.h b/lib/Arduino.h
index 4b3026b..ce50ea8 100644
--- a/lib/Arduino.h
+++ b/lib/Arduino.h
@@ -26,6 +26,7 @@
#define Arduino_h
#include <stdlib.h>
+#include <stdbool.h>
#include <string.h>
#include <math.h>
@@ -33,10 +34,14 @@
#include <avr/io.h>
#include <avr/interrupt.h>
+#include "arduino-binary.h"
+
#ifdef __cplusplus
extern "C"{
#endif
+void yield(void);
+
#define HIGH 0x1
#define LOW 0x0
@@ -44,14 +49,12 @@ extern "C"{
#define OUTPUT 0x1
#define INPUT_PULLUP 0x2
-#define true 0x1
-#define false 0x0
-
#define PI 3.1415926535897932384626433832795
#define HALF_PI 1.5707963267948966192313216916398
#define TWO_PI 6.283185307179586476925286766559
#define DEG_TO_RAD 0.017453292519943295769236907684886
#define RAD_TO_DEG 57.295779513082320876798154814105
+#define EULER 2.718281828459045235360287471352
#define SERIAL 0x0
#define DISPLAY 0x1
@@ -107,28 +110,35 @@ extern "C"{
#define bitClear(value, bit) ((value) &= ~(1UL << (bit)))
#define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit))
+// avr-libc defines _NOP() since 1.6.2
+#ifndef _NOP
+#define _NOP() do { __asm__ volatile ("nop"); } while (0)
+#endif
typedef unsigned int word;
#define bit(b) (1UL << (b))
-typedef uint8_t boolean;
+typedef bool boolean;
typedef uint8_t byte;
void init(void);
+int atexit(void (*func)()) __attribute__((weak));
+
void pinMode(uint8_t, uint8_t);
void digitalWrite(uint8_t, uint8_t);
-//int digitalRead(uint8_t);
-//int analogRead(uint8_t);
-//void analogReference(uint8_t mode);
-//void analogWrite(uint8_t, int);
+int digitalRead(uint8_t);
+int analogRead(uint8_t);
+void analogReference(uint8_t mode);
+void analogWrite(uint8_t, int);
unsigned long millis(void);
unsigned long micros(void);
void delay(unsigned long);
void delayMicroseconds(unsigned int us);
// unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout);
+// unsigned long pulseInLong(uint8_t pin, uint8_t state, unsigned long timeout);
// void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val);
// uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder);
@@ -148,7 +158,7 @@ extern const uint16_t PROGMEM port_to_input_PGM[];
extern const uint16_t PROGMEM port_to_output_PGM[];
extern const uint8_t PROGMEM digital_pin_to_port_PGM[];
-extern const uint8_t PROGMEM digital_pin_to_bit_PGM[];
+// extern const uint8_t PROGMEM digital_pin_to_bit_PGM[];
extern const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[];
extern const uint8_t PROGMEM digital_pin_to_timer_PGM[];
@@ -168,6 +178,8 @@ extern const uint8_t PROGMEM digital_pin_to_timer_PGM[];
#define NOT_A_PIN 0
#define NOT_A_PORT 0
+#define NOT_AN_INTERRUPT -1
+
#ifdef ARDUINO_MAIN
#define PA 1
#define PB 2
@@ -187,26 +199,44 @@ extern const uint8_t PROGMEM digital_pin_to_timer_PGM[];
#define TIMER0B 2
#define TIMER1A 3
#define TIMER1B 4
-#define TIMER2 5
-#define TIMER2A 6
-#define TIMER2B 7
-
-#define TIMER3A 8
-#define TIMER3B 9
-#define TIMER3C 10
-#define TIMER4A 11
-#define TIMER4B 12
-#define TIMER4C 13
-#define TIMER4D 14
-#define TIMER5A 15
-#define TIMER5B 16
-#define TIMER5C 17
+#define TIMER1C 5
+#define TIMER2 6
+#define TIMER2A 7
+#define TIMER2B 8
+
+#define TIMER3A 9
+#define TIMER3B 10
+#define TIMER3C 11
+#define TIMER4A 12
+#define TIMER4B 13
+#define TIMER4C 14
+#define TIMER4D 15
+#define TIMER5A 16
+#define TIMER5B 17
+#define TIMER5C 18
#ifdef __cplusplus
} // extern "C"
#endif
-// #include "pins_arduino.h"
+uint16_t makeWord(uint16_t w);
+uint16_t makeWord(byte h, byte l);
+
+#define word(...) makeWord(__VA_ARGS__)
+
+// WMath prototypes
+long random(long);
+long random(long, long);
+void randomSeed(unsigned long);
+long map(long, long, long, long, long);
+
+#if ARDUINO_BOARD == standard
+#include "arduino-pins/standard.h"
+#elif ARDUINO_BOARD == leonardo
+#include "arduino-pins/leonardo.h"
+#endif
+
+// this is from spreadspace utils to run call arduino's init function
void arduino_init(void);
#endif