24 #ifndef Pins_Arduino_h
25 #define Pins_Arduino_h
27 #include <avr/pgmspace.h>
29 #define NUM_DIGITAL_PINS 20
30 #define NUM_ANALOG_INPUTS 6
31 #define analogInputToDigitalPin(p) ((p < 6) ? (p) + 14 : -1)
33 #if defined(__AVR_ATmega8__)
34 #define digitalPinHasPWM(p) ((p) == 9 || (p) == 10 || (p) == 11)
36 #define digitalPinHasPWM(p) ((p) == 3 || (p) == 5 || (p) == 6 || (p) == 9 || (p) == 10 || (p) == 11)
39 static const uint8_t SS = 10;
40 static const uint8_t MOSI = 11;
41 static const uint8_t MISO = 12;
42 static const uint8_t SCK = 13;
44 static const uint8_t SDA = 18;
45 static const uint8_t SCL = 19;
48 static const uint8_t A0 = 14;
49 static const uint8_t A1 = 15;
50 static const uint8_t A2 = 16;
51 static const uint8_t A3 = 17;
52 static const uint8_t A4 = 18;
53 static const uint8_t A5 = 19;
54 static const uint8_t A6 = 20;
55 static const uint8_t A7 = 21;
57 #define digitalPinToPCICR(p) (((p) >= 0 && (p) <= 21) ? (&PCICR) : ((uint8_t *)0))
58 #define digitalPinToPCICRbit(p) (((p) <= 7) ? 2 : (((p) <= 13) ? 0 : 1))
59 #define digitalPinToPCMSK(p) (((p) <= 7) ? (&PCMSK2) : (((p) <= 13) ? (&PCMSK0) : (((p) <= 21) ? (&PCMSK1) : ((uint8_t *)0))))
60 #define digitalPinToPCMSKbit(p) (((p) <= 7) ? (p) : (((p) <= 13) ? ((p) - 8) : ((p) - 14)))
62 #define digitalPinToInterrupt(p) ((p) == 2 ? 0 : ((p) == 3 ? 1 : NOT_AN_INTERRUPT))
109 const uint16_t PROGMEM port_to_mode_PGM[] = {
117 const uint16_t PROGMEM port_to_output_PGM[] = {
125 const uint16_t PROGMEM port_to_input_PGM[] = {
133 const uint8_t PROGMEM digital_pin_to_port_PGM[] = {
156 const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = {
179 const uint8_t PROGMEM digital_pin_to_timer_PGM[] = {
184 #if defined(__AVR_ATmega8__)
191 #if defined(__AVR_ATmega8__)
202 #if defined(__AVR_ATmega8__)
234 #define SERIAL_PORT_MONITOR Serial
235 #define SERIAL_PORT_HARDWARE Serial