Esp32/Core/pins_arduino.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  * pins_arduino.h
8  *
9  ****/
10 
11 // File name selected for compatibility
12 
13 #pragma once
14 
15 #include "peripheral.h"
16 
17 #define EXTERNAL_NUM_INTERRUPTS 16
18 #define NUM_DIGITAL_PINS 40
19 #define NUM_ANALOG_INPUTS 16
20 
21 #define analogInputToDigitalPin(p) (((p) < 20) ? (esp32_adc2gpio[(p)]) : -1)
22 #define digitalPinToInterrupt(p) (((p) < 40) ? (p) : -1)
23 #define digitalPinHasPWM(p) (p < 34)
24 
25 constexpr uint8_t A0{36};
26 
27 #define GPIO_REG_TYPE uint32_t
28 
29 // We use maximum compatibility to standard Arduino logic.
30 
31 #define digitalPinToPort(pin) (0)
32 #define digitalPinToBitMask(pin) (1UL << (pin))
33 #define digitalPinToTimer(pin) (NOT_ON_TIMER)
34 #define portOutputRegister(port) ((volatile uint32_t*)&GPO)
35 #define portInputRegister(port) ((volatile uint32_t*)&GPI)
36 #define portModeRegister(port) ((volatile uint32_t*)&GPE)
constexpr uint8_t A0
Definition: Esp32/Core/pins_arduino.h:25