Skip to content

Commit ee5d5f5

Browse files
Merge pull request #278 from jnsbyr/esp
pin functions based on board depended defaults
2 parents c1bafb7 + 625cff9 commit ee5d5f5

File tree

7 files changed

+26
-19
lines changed

7 files changed

+26
-19
lines changed

Boards.h

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -665,22 +665,26 @@ writePort(port, value, bitmask): Write an 8 bit port.
665665
#define PIN_TO_PWM(p) PIN_TO_DIGITAL(p)
666666
#define PIN_TO_SERVO(p) ((p) - 2)
667667

668-
// ESP8266 generic
668+
// ESP8266
669+
// note: boot mode GPIOs 0, 2 and 15 can be used as outputs, GPIOs 6-11 are in use for flash IO
669670
#elif defined(ESP8266)
670-
#define TOTAL_ANALOG_PINS 0
671-
#define TOTAL_PINS 17
672-
#define VERSION_BLINK_PIN 4
673-
// #define IS_PIN_DIGITAL(p) ((p) == 0 || (p) == 1 || (p) == 2 || (p) == 3 || (p) == 4 || (p) == 5 || (p) == 12 || (p) == 13 || (p) == 14 || (p) == 15 || (p) == 16) //for wifi dont protect serial pins because these things only have 2 pins otherwise
674-
#define IS_PIN_DIGITAL(p) ((p) == 0 || (p) == 2 || (p) == 4 || (p) == 5 || (p) == 12 || (p) == 13 || (p) == 14 || (p) == 15 || (p) == 16)
675-
#define IS_PIN_ANALOG(p) (false)
676-
#define IS_PIN_PWM(p) (false)
677-
#define IS_PIN_SERVO(p) ((p) >= 0 && (p) < MAX_SERVOS)
678-
#define IS_PIN_I2C(p) (false)
679-
#define IS_PIN_SPI(p) (false)
671+
#define TOTAL_ANALOG_PINS NUM_ANALOG_INPUTS
672+
#define TOTAL_PINS A0 + NUM_ANALOG_INPUTS
673+
#define PIN_SERIAL_RX 3
674+
#define PIN_SERIAL_TX 1
675+
#define IS_PIN_DIGITAL(p) (((p) >= 0 && (p) <= 5) || ((p) >= 12 && (p) < A0))
676+
#define IS_PIN_ANALOG(p) ((p) >= A0 && (p) < A0 + NUM_ANALOG_INPUTS)
677+
#define IS_PIN_PWM(p) digitalPinHasPWM(p)
678+
#define IS_PIN_SERVO(p) (IS_PIN_DIGITAL(p) && (p) < MAX_SERVOS)
679+
#define IS_PIN_I2C(p) ((p) == SDA || (p) == SCL)
680+
#define IS_PIN_SPI(p) ((p) == SS || (p) == MOSI || (p) == MISO || (p) == SCK)
681+
#define IS_PIN_INTERRUPT(p) (digitalPinToInterrupt(p) > NOT_AN_INTERRUPT)
682+
#define IS_PIN_SERIAL(p) ((p) == PIN_SERIAL_RX || (p) == PIN_SERIAL_TX)
680683
#define PIN_TO_DIGITAL(p) (p)
681-
#define PIN_TO_ANALOG(p) ((p) - 17)
684+
#define PIN_TO_ANALOG(p) ((p) - A0)
682685
#define PIN_TO_PWM(p) PIN_TO_DIGITAL(p)
683-
#define PIN_TO_SERVO(p) p
686+
#define PIN_TO_SERVO(p) (p)
687+
#define DEFAULT_PWM_RESOLUTION 10
684688

685689

686690
// anything else
@@ -697,6 +701,9 @@ writePort(port, value, bitmask): Write an 8 bit port.
697701
#define IS_PIN_SERIAL(p) 0
698702
#endif
699703

704+
#ifndef DEFAULT_PWM_RESOLUTION
705+
#define DEFAULT_PWM_RESOLUTION 8
706+
#endif
700707

701708
/*==============================================================================
702709
* readPort() - Read an 8 bit port

examples/StandardFirmata/StandardFirmata.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -615,7 +615,7 @@ void sysexCallback(byte command, byte argc, byte *argv)
615615
}
616616
if (IS_PIN_PWM(pin)) {
617617
Firmata.write(PIN_MODE_PWM);
618-
Firmata.write(8); // 8 = 8-bit resolution
618+
Firmata.write(DEFAULT_PWM_RESOLUTION);
619619
}
620620
if (IS_PIN_DIGITAL(pin)) {
621621
Firmata.write(PIN_MODE_SERVO);

examples/StandardFirmataChipKIT/StandardFirmataChipKIT.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -616,7 +616,7 @@ void sysexCallback(byte command, byte argc, byte *argv)
616616
}
617617
if (IS_PIN_PWM(pin)) {
618618
Firmata.write(PIN_MODE_PWM);
619-
Firmata.write(8); // 8 = 8-bit resolution
619+
Firmata.write(DEFAULT_PWM_RESOLUTION);
620620
}
621621
if (IS_PIN_DIGITAL(pin)) {
622622
Firmata.write(PIN_MODE_SERVO);

examples/StandardFirmataEthernet/StandardFirmataEthernet.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -672,7 +672,7 @@ void sysexCallback(byte command, byte argc, byte *argv)
672672
}
673673
if (IS_PIN_PWM(pin)) {
674674
Firmata.write(PIN_MODE_PWM);
675-
Firmata.write(8); // 8 = 8-bit resolution
675+
Firmata.write(DEFAULT_PWM_RESOLUTION);
676676
}
677677
if (IS_PIN_DIGITAL(pin)) {
678678
Firmata.write(PIN_MODE_SERVO);

examples/StandardFirmataEthernetPlus/StandardFirmataEthernetPlus.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -680,7 +680,7 @@ void sysexCallback(byte command, byte argc, byte *argv)
680680
}
681681
if (IS_PIN_PWM(pin)) {
682682
Firmata.write(PIN_MODE_PWM);
683-
Firmata.write(8); // 8 = 8-bit resolution
683+
Firmata.write(DEFAULT_PWM_RESOLUTION);
684684
}
685685
if (IS_PIN_DIGITAL(pin)) {
686686
Firmata.write(PIN_MODE_SERVO);

examples/StandardFirmataPlus/StandardFirmataPlus.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -635,7 +635,7 @@ void sysexCallback(byte command, byte argc, byte *argv)
635635
}
636636
if (IS_PIN_PWM(pin)) {
637637
Firmata.write(PIN_MODE_PWM);
638-
Firmata.write(8); // 8 = 8-bit resolution
638+
Firmata.write(DEFAULT_PWM_RESOLUTION);
639639
}
640640
if (IS_PIN_DIGITAL(pin)) {
641641
Firmata.write(PIN_MODE_SERVO);

examples/StandardFirmataWiFi/StandardFirmataWiFi.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -692,7 +692,7 @@ void sysexCallback(byte command, byte argc, byte *argv)
692692
}
693693
if (IS_PIN_PWM(pin)) {
694694
Firmata.write(PIN_MODE_PWM);
695-
Firmata.write(8); // 8 = 8-bit resolution
695+
Firmata.write(DEFAULT_PWM_RESOLUTION);
696696
}
697697
if (IS_PIN_DIGITAL(pin)) {
698698
Firmata.write(PIN_MODE_SERVO);

0 commit comments

Comments
 (0)