1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-21 10:26:06 +03:00

Open-drain output mode

This commit is contained in:
Ivan Grokhotkov 2014-12-05 00:05:01 +03:00
parent 2d9c5d8297
commit 31a8539763
2 changed files with 11 additions and 1 deletions

View File

@ -40,6 +40,7 @@ void yield(void);
#define INPUT 0x0 #define INPUT 0x0
#define OUTPUT 0x1 #define OUTPUT 0x1
#define INPUT_PULLUP 0x2 #define INPUT_PULLUP 0x2
#define OUTPUT_OPEN_DRAIN 0x4
#define PI 3.1415926535897932384626433832795 #define PI 3.1415926535897932384626433832795
#define HALF_PI 1.5707963267948966192313216916398 #define HALF_PI 1.5707963267948966192313216916398

View File

@ -88,11 +88,20 @@ void pinMode(uint8_t pin, uint8_t mode)
gpio_output_set(0, 0, 0, 1 << pin); gpio_output_set(0, 0, 0, 1 << pin);
PIN_PULLUP_EN(mux); PIN_PULLUP_EN(mux);
} }
else else if (mode == OUPUT)
{ {
gpio_output_set(0, 0, 1 << pin, 0); gpio_output_set(0, 0, 1 << pin, 0);
} }
else if (mode == OUTPUT_OPEN_DRAIN)
{
GPIO_REG_WRITE(
GPIO_PIN_ADDR(GPIO_ID_PIN(pin)),
GPIO_REG_READ(GPIO_PIN_ADDR(GPIO_ID_PIN(pin))) |
GPIO_PIN_PAD_DRIVER_SET(GPIO_PAD_DRIVER_ENABLE)
);
GPIO_REG_WRITE(GPIO_ENABLE_ADDRESS, GPIO_REG_READ(GPIO_ENABLE_ADDRESS) | (1 << pin));
}
} }
void digitalWrite(uint8_t pin, uint8_t val) void digitalWrite(uint8_t pin, uint8_t val)