mirror of
https://github.com/esp8266/Arduino.git
synced 2025-06-17 22:23:10 +03:00
Add wakeup pullup and pulldown pin modes
This commit is contained in:
@ -51,6 +51,8 @@ void yield(void);
|
|||||||
#define INPUT_PULLDOWN 0x04
|
#define INPUT_PULLDOWN 0x04
|
||||||
#define OUTPUT 0x01
|
#define OUTPUT 0x01
|
||||||
#define OUTPUT_OPEN_DRAIN 0x03
|
#define OUTPUT_OPEN_DRAIN 0x03
|
||||||
|
#define WAKEUP_PULLUP 0x05
|
||||||
|
#define WAKEUP_PULLDOWN 0x07
|
||||||
#define SPECIAL 0xF8 //defaults to the usable BUSes uart0rx/tx uart1tx and hspi
|
#define SPECIAL 0xF8 //defaults to the usable BUSes uart0rx/tx uart1tx and hspi
|
||||||
#define FUNCTION_0 0x08
|
#define FUNCTION_0 0x08
|
||||||
#define FUNCTION_1 0x18
|
#define FUNCTION_1 0x18
|
||||||
|
@ -53,6 +53,16 @@ extern void __pinMode(uint8_t pin, uint8_t mode) {
|
|||||||
} else if(mode == INPUT_PULLDOWN) {
|
} else if(mode == INPUT_PULLDOWN) {
|
||||||
GPF(pin) |= (1 << GPFPD); // Enable Pulldown
|
GPF(pin) |= (1 << GPFPD); // Enable Pulldown
|
||||||
}
|
}
|
||||||
|
} else if(mode == WAKEUP_PULLUP || mode == WAKEUP_PULLDOWN){
|
||||||
|
GPF(pin) = GPFFS(GPFFS_GPIO(pin));//Set mode to GPIO
|
||||||
|
GPEC = (1 << pin); //Disable
|
||||||
|
if(mode == WAKEUP_PULLUP) {
|
||||||
|
GPF(pin) |= (1 << GPFPU); // Enable Pullup
|
||||||
|
GPC(pin) = (1 << GPCD) | (4 << GPCI) | (1 << GPCWE); //SOURCE(GPIO) | DRIVER(OPEN_DRAIN) | INT_TYPE(LOW) | WAKEUP_ENABLE(ENABLED)
|
||||||
|
} else {
|
||||||
|
GPF(pin) |= (1 << GPFPD); // Enable Pulldown
|
||||||
|
GPC(pin) = (1 << GPCD) | (5 << GPCI) | (1 << GPCWE); //SOURCE(GPIO) | DRIVER(OPEN_DRAIN) | INT_TYPE(HIGH) | WAKEUP_ENABLE(ENABLED)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if(pin == 16){
|
} else if(pin == 16){
|
||||||
GPF16 = GP16FFS(GPFFS_GPIO(pin));//Set mode to GPIO
|
GPF16 = GP16FFS(GPFFS_GPIO(pin));//Set mode to GPIO
|
||||||
|
Reference in New Issue
Block a user