From d754597ec39558f3e76403ed9036ada4ab64050d Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Tue, 9 Dec 2014 10:10:26 +0300 Subject: [PATCH] digitalWrite fix --- cores/esp8266/core_esp8266_wiring_digital.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/cores/esp8266/core_esp8266_wiring_digital.c b/cores/esp8266/core_esp8266_wiring_digital.c index 9db6f2f4e..3a176272d 100644 --- a/cores/esp8266/core_esp8266_wiring_digital.c +++ b/cores/esp8266/core_esp8266_wiring_digital.c @@ -88,7 +88,7 @@ void pinMode(uint8_t pin, uint8_t mode) gpio_output_set(0, 0, 0, 1 << pin); PIN_PULLUP_EN(mux); } - else if (mode == OUPUT) + else if (mode == OUTPUT) { gpio_output_set(0, 0, 1 << pin, 0); } @@ -106,9 +106,11 @@ void pinMode(uint8_t pin, uint8_t mode) void digitalWrite(uint8_t pin, uint8_t val) { - uint32_t set = ((val & 1) << pin); - uint32_t clr = (((~val) & 1) << pin); - gpio_output_set(set, clr, 0, 0); + uint32_t mask = 1 << pin; + if (val) + GPIO_REG_WRITE(GPIO_OUT_W1TS_ADDRESS, mask); + else + GPIO_REG_WRITE(GPIO_OUT_W1TC_ADDRESS, mask); } int digitalRead(uint8_t pin)