pins_arduino.h 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461
  1. /*
  2. pins_arduino.h - Pin definition functions for Arduino
  3. Part of Arduino - http://www.arduino.cc/
  4. Copyright (c) 2007 David A. Mellis
  5. This library is free software; you can redistribute it and/or
  6. modify it under the terms of the GNU Lesser General Public
  7. License as published by the Free Software Foundation; either
  8. version 2.1 of the License, or (at your option) any later version.
  9. This library is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12. Lesser General Public License for more details.
  13. You should have received a copy of the GNU Lesser General
  14. Public License along with this library; if not, write to the
  15. Free Software Foundation, Inc., 59 Temple Place, Suite 330,
  16. Boston, MA 02111-1307 USA
  17. */
  18. #ifndef Pins_Arduino_h
  19. #define Pins_Arduino_h
  20. #include <avr/pgmspace.h>
  21. #define NUM_DIGITAL_PINS 86
  22. #define NUM_ANALOG_INPUTS 16
  23. #define analogInputToDigitalPin(p) ((p < 16) ? (p) + 54 : -1)
  24. #define digitalPinHasPWM(p) (((p) >= 2 && (p) <= 13) || ((p) >= 44 && (p)<= 46))
  25. #define PIN_SPI_SS (53)
  26. #define PIN_SPI_MOSI (51)
  27. #define PIN_SPI_MISO (50)
  28. #define PIN_SPI_SCK (52)
  29. static const uint8_t SS = PIN_SPI_SS;
  30. static const uint8_t MOSI = PIN_SPI_MOSI;
  31. static const uint8_t MISO = PIN_SPI_MISO;
  32. static const uint8_t SCK = PIN_SPI_SCK;
  33. #define PIN_WIRE_SDA (20)
  34. #define PIN_WIRE_SCL (21)
  35. static const uint8_t SDA = PIN_WIRE_SDA;
  36. static const uint8_t SCL = PIN_WIRE_SCL;
  37. #define LED_BUILTIN 13
  38. #define PIN_A0 (54)
  39. #define PIN_A1 (55)
  40. #define PIN_A2 (56)
  41. #define PIN_A3 (57)
  42. #define PIN_A4 (58)
  43. #define PIN_A5 (59)
  44. #define PIN_A6 (60)
  45. #define PIN_A7 (61)
  46. #define PIN_A8 (62)
  47. #define PIN_A9 (63)
  48. #define PIN_A10 (64)
  49. #define PIN_A11 (65)
  50. #define PIN_A12 (66)
  51. #define PIN_A13 (67)
  52. #define PIN_A14 (68)
  53. #define PIN_A15 (69)
  54. static const uint8_t A0 = PIN_A0;
  55. static const uint8_t A1 = PIN_A1;
  56. static const uint8_t A2 = PIN_A2;
  57. static const uint8_t A3 = PIN_A3;
  58. static const uint8_t A4 = PIN_A4;
  59. static const uint8_t A5 = PIN_A5;
  60. static const uint8_t A6 = PIN_A6;
  61. static const uint8_t A7 = PIN_A7;
  62. static const uint8_t A8 = PIN_A8;
  63. static const uint8_t A9 = PIN_A9;
  64. static const uint8_t A10 = PIN_A10;
  65. static const uint8_t A11 = PIN_A11;
  66. static const uint8_t A12 = PIN_A12;
  67. static const uint8_t A13 = PIN_A13;
  68. static const uint8_t A14 = PIN_A14;
  69. static const uint8_t A15 = PIN_A15;
  70. // A majority of the pins are NOT PCINTs, SO BE WARNED (i.e. you cannot use them as receive pins)
  71. // Only pins available for RECEIVE (TRANSMIT can be on any pin):
  72. // (I've deliberately left out pin mapping to the Hardware USARTs - seems senseless to me)
  73. // Pins: 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69
  74. #define digitalPinToPCICR(p) ( (((p) >= 10) && ((p) <= 13)) || \
  75. (((p) >= 50) && ((p) <= 53)) || \
  76. (((p) >= 62) && ((p) <= 69)) ? (&PCICR) : ((uint8_t *)0) )
  77. #define digitalPinToPCICRbit(p) ( (((p) >= 10) && ((p) <= 13)) || (((p) >= 50) && ((p) <= 53)) ? 0 : \
  78. ( (((p) >= 62) && ((p) <= 69)) ? 2 : \
  79. 0 ) )
  80. #define digitalPinToPCMSK(p) ( (((p) >= 10) && ((p) <= 13)) || (((p) >= 50) && ((p) <= 53)) ? (&PCMSK0) : \
  81. ( (((p) >= 62) && ((p) <= 69)) ? (&PCMSK2) : \
  82. ((uint8_t *)0) ) )
  83. #define digitalPinToPCMSKbit(p) ( (((p) >= 10) && ((p) <= 13)) ? ((p) - 6) : \
  84. ( ((p) == 50) ? 3 : \
  85. ( ((p) == 51) ? 2 : \
  86. ( ((p) == 52) ? 1 : \
  87. ( ((p) == 53) ? 0 : \
  88. ( (((p) >= 62) && ((p) <= 69)) ? ((p) - 62) : \
  89. 0 ) ) ) ) ) )
  90. #define digitalPinToInterrupt(p) ((p) == 2 ? 0 : ((p) == 3 ? 1 : ((p) >= 18 && (p) <= 21 ? 23 - (p) : NOT_AN_INTERRUPT)))
  91. #ifdef ARDUINO_MAIN
  92. const uint16_t PROGMEM port_to_mode_PGM[] = {
  93. NOT_A_PORT,
  94. (uint16_t) &DDRA,
  95. (uint16_t) &DDRB,
  96. (uint16_t) &DDRC,
  97. (uint16_t) &DDRD,
  98. (uint16_t) &DDRE,
  99. (uint16_t) &DDRF,
  100. (uint16_t) &DDRG,
  101. (uint16_t) &DDRH,
  102. NOT_A_PORT,
  103. (uint16_t) &DDRJ,
  104. (uint16_t) &DDRK,
  105. (uint16_t) &DDRL,
  106. };
  107. const uint16_t PROGMEM port_to_output_PGM[] = {
  108. NOT_A_PORT,
  109. (uint16_t) &PORTA,
  110. (uint16_t) &PORTB,
  111. (uint16_t) &PORTC,
  112. (uint16_t) &PORTD,
  113. (uint16_t) &PORTE,
  114. (uint16_t) &PORTF,
  115. (uint16_t) &PORTG,
  116. (uint16_t) &PORTH,
  117. NOT_A_PORT,
  118. (uint16_t) &PORTJ,
  119. (uint16_t) &PORTK,
  120. (uint16_t) &PORTL,
  121. };
  122. const uint16_t PROGMEM port_to_input_PGM[] = {
  123. NOT_A_PIN,
  124. (uint16_t) &PINA,
  125. (uint16_t) &PINB,
  126. (uint16_t) &PINC,
  127. (uint16_t) &PIND,
  128. (uint16_t) &PINE,
  129. (uint16_t) &PINF,
  130. (uint16_t) &PING,
  131. (uint16_t) &PINH,
  132. NOT_A_PIN,
  133. (uint16_t) &PINJ,
  134. (uint16_t) &PINK,
  135. (uint16_t) &PINL,
  136. };
  137. const uint8_t PROGMEM digital_pin_to_port_PGM[] = {
  138. // PORTLIST
  139. // -------------------------------------------
  140. PE , // PE 0 ** 0 ** USART0_RX
  141. PE , // PE 1 ** 1 ** USART0_TX
  142. PE , // PE 4 ** 2 ** PWM2
  143. PE , // PE 5 ** 3 ** PWM3
  144. PG , // PG 5 ** 4 ** PWM4
  145. PE , // PE 3 ** 5 ** PWM5
  146. PH , // PH 3 ** 6 ** PWM6
  147. PH , // PH 4 ** 7 ** PWM7
  148. PH , // PH 5 ** 8 ** PWM8
  149. PH , // PH 6 ** 9 ** PWM9
  150. PB , // PB 4 ** 10 ** PWM10
  151. PB , // PB 5 ** 11 ** PWM11
  152. PB , // PB 6 ** 12 ** PWM12
  153. PB , // PB 7 ** 13 ** PWM13
  154. PJ , // PJ 1 ** 14 ** USART3_TX
  155. PJ , // PJ 0 ** 15 ** USART3_RX
  156. PH , // PH 1 ** 16 ** USART2_TX
  157. PH , // PH 0 ** 17 ** USART2_RX
  158. PD , // PD 3 ** 18 ** USART1_TX
  159. PD , // PD 2 ** 19 ** USART1_RX
  160. PD , // PD 1 ** 20 ** I2C_SDA
  161. PD , // PD 0 ** 21 ** I2C_SCL
  162. PA , // PA 0 ** 22 ** D22
  163. PA , // PA 1 ** 23 ** D23
  164. PA , // PA 2 ** 24 ** D24
  165. PA , // PA 3 ** 25 ** D25
  166. PA , // PA 4 ** 26 ** D26
  167. PA , // PA 5 ** 27 ** D27
  168. PA , // PA 6 ** 28 ** D28
  169. PA , // PA 7 ** 29 ** D29
  170. PC , // PC 7 ** 30 ** D30
  171. PC , // PC 6 ** 31 ** D31
  172. PC , // PC 5 ** 32 ** D32
  173. PC , // PC 4 ** 33 ** D33
  174. PC , // PC 3 ** 34 ** D34
  175. PC , // PC 2 ** 35 ** D35
  176. PC , // PC 1 ** 36 ** D36
  177. PC , // PC 0 ** 37 ** D37
  178. PD , // PD 7 ** 38 ** D38
  179. PG , // PG 2 ** 39 ** D39
  180. PG , // PG 1 ** 40 ** D40
  181. PG , // PG 0 ** 41 ** D41
  182. PL , // PL 7 ** 42 ** D42
  183. PL , // PL 6 ** 43 ** D43
  184. PL , // PL 5 ** 44 ** D44
  185. PL , // PL 4 ** 45 ** D45
  186. PL , // PL 3 ** 46 ** D46
  187. PL , // PL 2 ** 47 ** D47
  188. PL , // PL 1 ** 48 ** D48
  189. PL , // PL 0 ** 49 ** D49
  190. PB , // PB 3 ** 50 ** SPI_MISO
  191. PB , // PB 2 ** 51 ** SPI_MOSI
  192. PB , // PB 1 ** 52 ** SPI_SCK
  193. PB , // PB 0 ** 53 ** SPI_SS
  194. PF , // PF 0 ** 54 ** A0
  195. PF , // PF 1 ** 55 ** A1
  196. PF , // PF 2 ** 56 ** A2
  197. PF , // PF 3 ** 57 ** A3
  198. PF , // PF 4 ** 58 ** A4
  199. PF , // PF 5 ** 59 ** A5
  200. PF , // PF 6 ** 60 ** A6
  201. PF , // PF 7 ** 61 ** A7
  202. PK , // PK 0 ** 62 ** A8
  203. PK , // PK 1 ** 63 ** A9
  204. PK , // PK 2 ** 64 ** A10
  205. PK , // PK 3 ** 65 ** A11
  206. PK , // PK 4 ** 66 ** A12
  207. PK , // PK 5 ** 67 ** A13
  208. PK , // PK 6 ** 68 ** A14
  209. PK , // PK 7 ** 69 ** A15
  210. PG , // PG 4 ** 70 ** D70
  211. PG , // PG 3 ** 71 ** D71
  212. PJ , // PJ 2 ** 72 ** D72
  213. PJ , // PJ 3 ** 73 ** D73
  214. PJ , // PJ 7 ** 74 ** D74
  215. PJ , // PJ 4 ** 75 ** D75
  216. PJ , // PJ 5 ** 76 ** D76
  217. PJ , // PJ 6 ** 77 ** D77
  218. PE , // PE 2 ** 78 ** D78
  219. PE , // PE 6 ** 79 ** D79
  220. PE , // PE 7 ** 80 ** D80
  221. PD , // PD 4 ** 81 ** D81
  222. PD , // PD 5 ** 82 ** D82
  223. PD , // PD 6 ** 83 ** D83
  224. PH , // PH 2 ** 84 ** D84
  225. PH , // PH 7 ** 85 ** D85
  226. };
  227. const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = {
  228. // PIN IN PORT
  229. // -------------------------------------------
  230. _BV( 0 ) , // PE 0 ** 0 ** USART0_RX
  231. _BV( 1 ) , // PE 1 ** 1 ** USART0_TX
  232. _BV( 4 ) , // PE 4 ** 2 ** PWM2
  233. _BV( 5 ) , // PE 5 ** 3 ** PWM3
  234. _BV( 5 ) , // PG 5 ** 4 ** PWM4
  235. _BV( 3 ) , // PE 3 ** 5 ** PWM5
  236. _BV( 3 ) , // PH 3 ** 6 ** PWM6
  237. _BV( 4 ) , // PH 4 ** 7 ** PWM7
  238. _BV( 5 ) , // PH 5 ** 8 ** PWM8
  239. _BV( 6 ) , // PH 6 ** 9 ** PWM9
  240. _BV( 4 ) , // PB 4 ** 10 ** PWM10
  241. _BV( 5 ) , // PB 5 ** 11 ** PWM11
  242. _BV( 6 ) , // PB 6 ** 12 ** PWM12
  243. _BV( 7 ) , // PB 7 ** 13 ** PWM13
  244. _BV( 1 ) , // PJ 1 ** 14 ** USART3_TX
  245. _BV( 0 ) , // PJ 0 ** 15 ** USART3_RX
  246. _BV( 1 ) , // PH 1 ** 16 ** USART2_TX
  247. _BV( 0 ) , // PH 0 ** 17 ** USART2_RX
  248. _BV( 3 ) , // PD 3 ** 18 ** USART1_TX
  249. _BV( 2 ) , // PD 2 ** 19 ** USART1_RX
  250. _BV( 1 ) , // PD 1 ** 20 ** I2C_SDA
  251. _BV( 0 ) , // PD 0 ** 21 ** I2C_SCL
  252. _BV( 0 ) , // PA 0 ** 22 ** D22
  253. _BV( 1 ) , // PA 1 ** 23 ** D23
  254. _BV( 2 ) , // PA 2 ** 24 ** D24
  255. _BV( 3 ) , // PA 3 ** 25 ** D25
  256. _BV( 4 ) , // PA 4 ** 26 ** D26
  257. _BV( 5 ) , // PA 5 ** 27 ** D27
  258. _BV( 6 ) , // PA 6 ** 28 ** D28
  259. _BV( 7 ) , // PA 7 ** 29 ** D29
  260. _BV( 7 ) , // PC 7 ** 30 ** D30
  261. _BV( 6 ) , // PC 6 ** 31 ** D31
  262. _BV( 5 ) , // PC 5 ** 32 ** D32
  263. _BV( 4 ) , // PC 4 ** 33 ** D33
  264. _BV( 3 ) , // PC 3 ** 34 ** D34
  265. _BV( 2 ) , // PC 2 ** 35 ** D35
  266. _BV( 1 ) , // PC 1 ** 36 ** D36
  267. _BV( 0 ) , // PC 0 ** 37 ** D37
  268. _BV( 7 ) , // PD 7 ** 38 ** D38
  269. _BV( 2 ) , // PG 2 ** 39 ** D39
  270. _BV( 1 ) , // PG 1 ** 40 ** D40
  271. _BV( 0 ) , // PG 0 ** 41 ** D41
  272. _BV( 7 ) , // PL 7 ** 42 ** D42
  273. _BV( 6 ) , // PL 6 ** 43 ** D43
  274. _BV( 5 ) , // PL 5 ** 44 ** D44
  275. _BV( 4 ) , // PL 4 ** 45 ** D45
  276. _BV( 3 ) , // PL 3 ** 46 ** D46
  277. _BV( 2 ) , // PL 2 ** 47 ** D47
  278. _BV( 1 ) , // PL 1 ** 48 ** D48
  279. _BV( 0 ) , // PL 0 ** 49 ** D49
  280. _BV( 3 ) , // PB 3 ** 50 ** SPI_MISO
  281. _BV( 2 ) , // PB 2 ** 51 ** SPI_MOSI
  282. _BV( 1 ) , // PB 1 ** 52 ** SPI_SCK
  283. _BV( 0 ) , // PB 0 ** 53 ** SPI_SS
  284. _BV( 0 ) , // PF 0 ** 54 ** A0
  285. _BV( 1 ) , // PF 1 ** 55 ** A1
  286. _BV( 2 ) , // PF 2 ** 56 ** A2
  287. _BV( 3 ) , // PF 3 ** 57 ** A3
  288. _BV( 4 ) , // PF 4 ** 58 ** A4
  289. _BV( 5 ) , // PF 5 ** 59 ** A5
  290. _BV( 6 ) , // PF 6 ** 60 ** A6
  291. _BV( 7 ) , // PF 7 ** 61 ** A7
  292. _BV( 0 ) , // PK 0 ** 62 ** A8
  293. _BV( 1 ) , // PK 1 ** 63 ** A9
  294. _BV( 2 ) , // PK 2 ** 64 ** A10
  295. _BV( 3 ) , // PK 3 ** 65 ** A11
  296. _BV( 4 ) , // PK 4 ** 66 ** A12
  297. _BV( 5 ) , // PK 5 ** 67 ** A13
  298. _BV( 6 ) , // PK 6 ** 68 ** A14
  299. _BV( 7 ) , // PK 7 ** 69 ** A15
  300. _BV( 4 ) , // PG 4 ** 70 ** D70
  301. _BV( 3 ) , // PG 3 ** 71 ** D71
  302. _BV( 2 ) , // PJ 2 ** 72 ** D72
  303. _BV( 3 ) , // PJ 3 ** 73 ** D73
  304. _BV( 7 ) , // PJ 7 ** 74 ** D74
  305. _BV( 4 ) , // PJ 4 ** 75 ** D75
  306. _BV( 5 ) , // PJ 5 ** 76 ** D76
  307. _BV( 6 ) , // PJ 6 ** 77 ** D77
  308. _BV( 2 ) , // PE 2 ** 78 ** D78
  309. _BV( 6 ) , // PE 6 ** 79 ** D79
  310. _BV( 7 ) , // PE 7 ** 80 ** D80
  311. _BV( 4 ) , // PD 4 ** 81 ** D81
  312. _BV( 5 ) , // PD 5 ** 82 ** D82
  313. _BV( 6 ) , // PD 6 ** 83 ** D83
  314. _BV( 2 ) , // PH 2 ** 84 ** D84
  315. _BV( 7 ) , // PH 7 ** 85 ** D85
  316. };
  317. const uint8_t PROGMEM digital_pin_to_timer_PGM[] = {
  318. // TIMERS
  319. // -------------------------------------------
  320. NOT_ON_TIMER , // PE 0 ** 0 ** USART0_RX
  321. NOT_ON_TIMER , // PE 1 ** 1 ** USART0_TX
  322. TIMER3B , // PE 4 ** 2 ** PWM2
  323. TIMER3C , // PE 5 ** 3 ** PWM3
  324. TIMER0B , // PG 5 ** 4 ** PWM4
  325. TIMER3A , // PE 3 ** 5 ** PWM5
  326. TIMER4A , // PH 3 ** 6 ** PWM6
  327. TIMER4B , // PH 4 ** 7 ** PWM7
  328. TIMER4C , // PH 5 ** 8 ** PWM8
  329. TIMER2B , // PH 6 ** 9 ** PWM9
  330. TIMER2A , // PB 4 ** 10 ** PWM10
  331. TIMER1A , // PB 5 ** 11 ** PWM11
  332. TIMER1B , // PB 6 ** 12 ** PWM12
  333. TIMER0A , // PB 7 ** 13 ** PWM13
  334. NOT_ON_TIMER , // PJ 1 ** 14 ** USART3_TX
  335. NOT_ON_TIMER , // PJ 0 ** 15 ** USART3_RX
  336. NOT_ON_TIMER , // PH 1 ** 16 ** USART2_TX
  337. NOT_ON_TIMER , // PH 0 ** 17 ** USART2_RX
  338. NOT_ON_TIMER , // PD 3 ** 18 ** USART1_TX
  339. NOT_ON_TIMER , // PD 2 ** 19 ** USART1_RX
  340. NOT_ON_TIMER , // PD 1 ** 20 ** I2C_SDA
  341. NOT_ON_TIMER , // PD 0 ** 21 ** I2C_SCL
  342. NOT_ON_TIMER , // PA 0 ** 22 ** D22
  343. NOT_ON_TIMER , // PA 1 ** 23 ** D23
  344. NOT_ON_TIMER , // PA 2 ** 24 ** D24
  345. NOT_ON_TIMER , // PA 3 ** 25 ** D25
  346. NOT_ON_TIMER , // PA 4 ** 26 ** D26
  347. NOT_ON_TIMER , // PA 5 ** 27 ** D27
  348. NOT_ON_TIMER , // PA 6 ** 28 ** D28
  349. NOT_ON_TIMER , // PA 7 ** 29 ** D29
  350. NOT_ON_TIMER , // PC 7 ** 30 ** D30
  351. NOT_ON_TIMER , // PC 6 ** 31 ** D31
  352. NOT_ON_TIMER , // PC 5 ** 32 ** D32
  353. NOT_ON_TIMER , // PC 4 ** 33 ** D33
  354. NOT_ON_TIMER , // PC 3 ** 34 ** D34
  355. NOT_ON_TIMER , // PC 2 ** 35 ** D35
  356. NOT_ON_TIMER , // PC 1 ** 36 ** D36
  357. NOT_ON_TIMER , // PC 0 ** 37 ** D37
  358. NOT_ON_TIMER , // PD 7 ** 38 ** D38
  359. NOT_ON_TIMER , // PG 2 ** 39 ** D39
  360. NOT_ON_TIMER , // PG 1 ** 40 ** D40
  361. NOT_ON_TIMER , // PG 0 ** 41 ** D41
  362. NOT_ON_TIMER , // PL 7 ** 42 ** D42
  363. NOT_ON_TIMER , // PL 6 ** 43 ** D43
  364. TIMER5C , // PL 5 ** 44 ** D44
  365. TIMER5B , // PL 4 ** 45 ** D45
  366. TIMER5A , // PL 3 ** 46 ** D46
  367. NOT_ON_TIMER , // PL 2 ** 47 ** D47
  368. NOT_ON_TIMER , // PL 1 ** 48 ** D48
  369. NOT_ON_TIMER , // PL 0 ** 49 ** D49
  370. NOT_ON_TIMER , // PB 3 ** 50 ** SPI_MISO
  371. NOT_ON_TIMER , // PB 2 ** 51 ** SPI_MOSI
  372. NOT_ON_TIMER , // PB 1 ** 52 ** SPI_SCK
  373. NOT_ON_TIMER , // PB 0 ** 53 ** SPI_SS
  374. NOT_ON_TIMER , // PF 0 ** 54 ** A0
  375. NOT_ON_TIMER , // PF 1 ** 55 ** A1
  376. NOT_ON_TIMER , // PF 2 ** 56 ** A2
  377. NOT_ON_TIMER , // PF 3 ** 57 ** A3
  378. NOT_ON_TIMER , // PF 4 ** 58 ** A4
  379. NOT_ON_TIMER , // PF 5 ** 59 ** A5
  380. NOT_ON_TIMER , // PF 6 ** 60 ** A6
  381. NOT_ON_TIMER , // PF 7 ** 61 ** A7
  382. NOT_ON_TIMER , // PK 0 ** 62 ** A8
  383. NOT_ON_TIMER , // PK 1 ** 63 ** A9
  384. NOT_ON_TIMER , // PK 2 ** 64 ** A10
  385. NOT_ON_TIMER , // PK 3 ** 65 ** A11
  386. NOT_ON_TIMER , // PK 4 ** 66 ** A12
  387. NOT_ON_TIMER , // PK 5 ** 67 ** A13
  388. NOT_ON_TIMER , // PK 6 ** 68 ** A14
  389. NOT_ON_TIMER , // PK 7 ** 69 ** A15
  390. NOT_ON_TIMER , // PG 4 ** 70 ** D70
  391. NOT_ON_TIMER , // PG 3 ** 71 ** D71
  392. NOT_ON_TIMER , // PJ 2 ** 72 ** D72
  393. NOT_ON_TIMER , // PJ 3 ** 73 ** D73
  394. NOT_ON_TIMER , // PJ 7 ** 74 ** D74
  395. NOT_ON_TIMER , // PJ 4 ** 75 ** D75
  396. NOT_ON_TIMER , // PJ 5 ** 76 ** D76
  397. NOT_ON_TIMER , // PJ 6 ** 77 ** D77
  398. NOT_ON_TIMER , // PE 2 ** 78 ** D78
  399. NOT_ON_TIMER , // PE 6 ** 79 ** D79
  400. NOT_ON_TIMER , // PE 7 ** 80 ** D80
  401. NOT_ON_TIMER , // PD 4 ** 81 ** D81
  402. NOT_ON_TIMER , // PD 5 ** 82 ** D82
  403. NOT_ON_TIMER , // PD 6 ** 83 ** D83
  404. NOT_ON_TIMER , // PH 2 ** 84 ** D84
  405. NOT_ON_TIMER , // PH 7 ** 85 ** D85
  406. };
  407. #endif
  408. // These serial port names are intended to allow libraries and architecture-neutral
  409. // sketches to automatically default to the correct port name for a particular type
  410. // of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN,
  411. // the first hardware serial port whose RX/TX pins are not dedicated to another use.
  412. //
  413. // SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor
  414. //
  415. // SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial
  416. //
  417. // SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library
  418. //
  419. // SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins.
  420. //
  421. // SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX
  422. // pins are NOT connected to anything by default.
  423. #define SERIAL_PORT_MONITOR Serial
  424. #define SERIAL_PORT_HARDWARE Serial
  425. #define SERIAL_PORT_HARDWARE1 Serial1
  426. #define SERIAL_PORT_HARDWARE2 Serial2
  427. #define SERIAL_PORT_HARDWARE3 Serial3
  428. #define SERIAL_PORT_HARDWARE_OPEN Serial1
  429. #define SERIAL_PORT_HARDWARE_OPEN1 Serial2
  430. #define SERIAL_PORT_HARDWARE_OPEN2 Serial3
  431. #endif