summaryrefslogtreecommitdiff
path: root/lib/Arduino.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Arduino.h')
-rw-r--r--lib/Arduino.h27
1 files changed, 25 insertions, 2 deletions
diff --git a/lib/Arduino.h b/lib/Arduino.h
index 3698392..ac7031d 100644
--- a/lib/Arduino.h
+++ b/lib/Arduino.h
@@ -143,8 +143,8 @@ void delayMicroseconds(unsigned int us);
// 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);
-// void attachInterrupt(uint8_t, void (*)(void), int mode);
-// void detachInterrupt(uint8_t);
+void attachInterrupt(uint8_t, void (*)(void), int mode);
+void detachInterrupt(uint8_t);
// Get the bit location within the hardware port of the given virtual pin.
// This comes from the pins_*.c file for the active board configuration.
@@ -215,6 +215,29 @@ extern const uint8_t PROGMEM digital_pin_to_timer_PGM[];
#define TIMER5B 17
#define TIMER5C 18
+
+#define EXTERNAL_INT_0 0
+#define EXTERNAL_INT_1 1
+#define EXTERNAL_INT_2 2
+#define EXTERNAL_INT_3 3
+#define EXTERNAL_INT_4 4
+#define EXTERNAL_INT_5 5
+#define EXTERNAL_INT_6 6
+#define EXTERNAL_INT_7 7
+
+#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega128RFA1__) || defined(__AVR_ATmega256RFR2__) || \
+ defined(__AVR_AT90USB82__) || defined(__AVR_AT90USB162__) || defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega8U2__)
+#define EXTERNAL_NUM_INTERRUPTS 8
+#elif defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644__) || defined(__AVR_ATmega644A__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644PA__)
+#define EXTERNAL_NUM_INTERRUPTS 3
+#elif defined(__AVR_ATmega32U4__)
+#define EXTERNAL_NUM_INTERRUPTS 5
+#else
+#define EXTERNAL_NUM_INTERRUPTS 2
+#endif
+
+typedef void (*voidFuncPtr)(void);
+
#ifdef __cplusplus
} // extern "C"
#endif