Digital.h
Go to the documentation of this file.
1 /****
2  * Sming Framework Project - Open Source framework for high efficiency native ESP8266 development.
3  * Created 2015 by Skurydin Alexey
4  * http://github.com/SmingHub/Sming
5  * All files of the Sming Core are provided under the LGPL v3 license.
6  *
7  * Digital.h
8  *
9  ****/
10 
17 #pragma once
18 
19 #include <WConstants.h>
20 #include <esp_attr.h>
21 #include <pins_arduino.h>
22 #include <esp_systemapi.h>
23 
24 #ifdef ARCH_HOST
25 #include <DigitalHooks.h>
31 #endif
32 
38 void pinMode(uint16_t pin, uint8_t mode);
39 
44 void IRAM_ATTR digitalWrite(uint16_t pin, uint8_t val);
45 
50 uint8_t IRAM_ATTR digitalRead(uint16_t pin);
51 
55 void IRAM_ATTR pullup(uint16_t pin);
56 
60 void IRAM_ATTR noPullup(uint16_t pin);
61 
66 bool IRAM_ATTR isInputPin(uint16_t pin);
67 
76 unsigned long pulseIn(uint16_t pin, uint8_t state, unsigned long timeout = 1000000L);
77 
79 {
80  if(pin == A0)
81  return system_adc_read();
82  else
83  return -1; // Not supported
84 }
85 
void digitalWrite(uint16_t pin, uint8_t val)
Set a digital output.
void noPullup(uint16_t pin)
Disable pull-up on digital input.
uint16_t analogRead(uint16_t pin)
Definition: Digital.h:78
bool isInputPin(uint16_t pin)
Check if GPIO is an input.
void pullup(uint16_t pin)
Enable pull-up on digital input.
const unsigned int A0
Definition: Host/Core/pins_arduino.h:13
unsigned long pulseIn(uint16_t pin, uint8_t state, unsigned long timeout=1000000L)
Measures duration of pulse on GPIO.
void pinMode(uint16_t pin, uint8_t mode)
Set the mode of a GPIO pin.
uint8_t digitalRead(uint16_t pin)
Get the value of a digital input.
Class to customise behaviour for digital functions.
Definition: DigitalHooks.h:20
DigitalHooks * setDigitalHooks(DigitalHooks *hooks)
Replace (or remove) existing hooks.