pins_arduino.h 16 KB

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