I'm coding a library which handles sleep procedures.
Since I'm using both ESP826 and ESP32, which uses different sleep commands ( and WiFi ), I'm looking for a way to detect the MCU, while NOT using a boolean flag that indicates so.
Arduino Stack Exchange is a question and answer site for developers of open-source hardware and software that is compatible with Arduino. It only takes a minute to sign up.Sign up to join this community
I take this to mean that you do not want to have to ask the user of the code to configure a boolean flag.
The ESP8266 Arduino package provides
command-line options these while calling g++. These effectively
#define feature test macros as though they were at the beginning of the source code.
For ESP32 it does likewise with
You could perform tests in your code such as:
#if defined (ARDUINO_ARCH_ESP8266) // do one thing #elif defined(ESP32) // do another #else #error Architecture unrecognized by this code. #endif
There are likely also macros like these that are predefined by the xtensa g++ compiler.