MIDI Elements
Library to simplify handling of components for MIDI controllers
Main Page
Classes
Files
File List
File Members
All
Classes
Files
Functions
Variables
Macros
interrupt_pins.h
Go to the documentation of this file.
1
// interrupt pins for known boards
2
3
// Teensy (and maybe others) define these automatically
4
#if !defined(CORE_NUM_INTERRUPT)
5
6
// Wiring boards
7
#if defined(WIRING)
8
#define CORE_NUM_INTERRUPT NUM_EXTERNAL_INTERRUPTS
9
#if NUM_EXTERNAL_INTERRUPTS > 0
10
#define CORE_INT0_PIN EI0
11
#endif
12
#if NUM_EXTERNAL_INTERRUPTS > 1
13
#define CORE_INT1_PIN EI1
14
#endif
15
#if NUM_EXTERNAL_INTERRUPTS > 2
16
#define CORE_INT2_PIN EI2
17
#endif
18
#if NUM_EXTERNAL_INTERRUPTS > 3
19
#define CORE_INT3_PIN EI3
20
#endif
21
#if NUM_EXTERNAL_INTERRUPTS > 4
22
#define CORE_INT4_PIN EI4
23
#endif
24
#if NUM_EXTERNAL_INTERRUPTS > 5
25
#define CORE_INT5_PIN EI5
26
#endif
27
#if NUM_EXTERNAL_INTERRUPTS > 6
28
#define CORE_INT6_PIN EI6
29
#endif
30
#if NUM_EXTERNAL_INTERRUPTS > 7
31
#define CORE_INT7_PIN EI7
32
#endif
33
34
// Arduino Uno, Duemilanove, Diecimila, LilyPad, Mini, Fio, etc...
35
#elif defined(__AVR_ATmega328P__) || defined(__AVR_ATmega168__) || defined(__AVR_ATmega8__)
36
#define CORE_NUM_INTERRUPT 2
37
#define CORE_INT0_PIN 2
38
#define CORE_INT1_PIN 3
39
40
// Arduino Mega
41
#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
42
#define CORE_NUM_INTERRUPT 6
43
#define CORE_INT0_PIN 2
44
#define CORE_INT1_PIN 3
45
#define CORE_INT2_PIN 21
46
#define CORE_INT3_PIN 20
47
#define CORE_INT4_PIN 19
48
#define CORE_INT5_PIN 18
49
50
// Arduino Leonardo (untested)
51
#elif defined(__AVR_ATmega32U4__) && !defined(CORE_TEENSY)
52
#define CORE_NUM_INTERRUPT 4
53
#define CORE_INT0_PIN 3
54
#define CORE_INT1_PIN 2
55
#define CORE_INT2_PIN 0
56
#define CORE_INT3_PIN 1
57
58
// Sanguino (untested)
59
#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644__)
60
#define CORE_NUM_INTERRUPT 3
61
#define CORE_INT0_PIN 10
62
#define CORE_INT1_PIN 11
63
#define CORE_INT2_PIN 2
64
65
// Chipkit Uno32 - attachInterrupt may not support CHANGE option
66
#elif defined(__PIC32MX__) && defined(_BOARD_UNO_)
67
#define CORE_NUM_INTERRUPT 5
68
#define CORE_INT0_PIN 38
69
#define CORE_INT1_PIN 2
70
#define CORE_INT2_PIN 7
71
#define CORE_INT3_PIN 8
72
#define CORE_INT4_PIN 35
73
74
// Chipkit Uno32 - attachInterrupt may not support CHANGE option
75
#elif defined(__PIC32MX__) && defined(_BOARD_MEGA_)
76
#define CORE_NUM_INTERRUPT 5
77
#define CORE_INT0_PIN 3
78
#define CORE_INT1_PIN 2
79
#define CORE_INT2_PIN 7
80
#define CORE_INT3_PIN 21
81
#define CORE_INT4_PIN 20
82
83
// http://hlt.media.mit.edu/?p=1229
84
#elif defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__)
85
#define CORE_NUM_INTERRUPT 1
86
#define CORE_INT0_PIN 2
87
88
// Arduino Due (untested)
89
#elif defined(__SAM3X8E__)
90
#define CORE_NUM_INTERRUPT 54
91
#define CORE_INT0_PIN 0
92
#define CORE_INT1_PIN 1
93
#define CORE_INT2_PIN 2
94
#define CORE_INT3_PIN 3
95
#define CORE_INT4_PIN 4
96
#define CORE_INT5_PIN 5
97
#define CORE_INT6_PIN 6
98
#define CORE_INT7_PIN 7
99
#define CORE_INT8_PIN 8
100
#define CORE_INT9_PIN 9
101
#define CORE_INT10_PIN 10
102
#define CORE_INT11_PIN 11
103
#define CORE_INT12_PIN 12
104
#define CORE_INT13_PIN 13
105
#define CORE_INT14_PIN 14
106
#define CORE_INT15_PIN 15
107
#define CORE_INT16_PIN 16
108
#define CORE_INT17_PIN 17
109
#define CORE_INT18_PIN 18
110
#define CORE_INT19_PIN 19
111
#define CORE_INT20_PIN 20
112
#define CORE_INT21_PIN 21
113
#define CORE_INT22_PIN 22
114
#define CORE_INT23_PIN 23
115
#define CORE_INT24_PIN 24
116
#define CORE_INT25_PIN 25
117
#define CORE_INT26_PIN 26
118
#define CORE_INT27_PIN 27
119
#define CORE_INT28_PIN 28
120
#define CORE_INT29_PIN 29
121
#define CORE_INT30_PIN 30
122
#define CORE_INT31_PIN 31
123
#define CORE_INT32_PIN 32
124
#define CORE_INT33_PIN 33
125
#define CORE_INT34_PIN 34
126
#define CORE_INT35_PIN 35
127
#define CORE_INT36_PIN 36
128
#define CORE_INT37_PIN 37
129
#define CORE_INT38_PIN 38
130
#define CORE_INT39_PIN 39
131
#define CORE_INT40_PIN 40
132
#define CORE_INT41_PIN 41
133
#define CORE_INT42_PIN 42
134
#define CORE_INT43_PIN 43
135
#define CORE_INT44_PIN 44
136
#define CORE_INT45_PIN 45
137
#define CORE_INT46_PIN 46
138
#define CORE_INT47_PIN 47
139
#define CORE_INT48_PIN 48
140
#define CORE_INT49_PIN 49
141
#define CORE_INT50_PIN 50
142
#define CORE_INT51_PIN 51
143
#define CORE_INT52_PIN 52
144
#define CORE_INT53_PIN 53
145
146
#endif
147
#endif
148
149
#if !defined(CORE_NUM_INTERRUPT)
150
#error "Interrupts are unknown for this board, please add to this code"
151
#endif
152
#if CORE_NUM_INTERRUPT <= 0
153
#error "Encoder requires interrupt pins, but this board does not have any :("
154
#error "You could try defining ENCODER_DO_NOT_USE_INTERRUPTS as a kludge."
155
#endif
156
utility
interrupt_pins.h
Generated on Wed Jun 4 2014 10:22:44 for MIDI Elements by
1.8.7