//---Макросы идентификации плат #define RT_HW_DEFINED_AVR328 defined (__AVR_ATmega328__) || defined (__AVR_ATmega328P__) || defined(__AVR_ATmega168__) || defined(__AVR_ATmega88__) #define RT_HW_DEFINED_MEGA2560 defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__) #define RT_HW_DEFINED_SAM3X8E defined(__SAM3X8E__) #define RT_HW_DEFINED_ESP8266 defined(ESP8266) #define RT_HW_DEFINED_ESP32 defined(ESP32) #define RT_HW_DEFINED_STM32 defined(_VARIANT_ARDUINO_STM32_) #define RT_HW_DEFINED_ANON //+++++++++++++++++ ВЫБОР ИНДИВИДУАЛЬНЫХ ПАРАМЕТРОВ ДЛЯ КОНТРОЛЛЕРОВ+++++++++++ //----Определение кодов плат для использования в библиотеках и внешних программах enum { RT_HW_CODE_NO=0, RT_HW_CODE_AVR328=1, RT_HW_CODE_MEGA2560=2, RT_HW_CODE_SAM3X8E=3, RT_HW_CODE_ESP8266=4, RT_HW_CODE_ESP32=5, RT_HW_CODE_STM32=6, RT_HW_CODE_ANON=7}; //----------------- AVR ATmega328,328P,168,88 --------------------------------- #if RT_HW_DEFINED_AVR328 #define RT_HW_NAME_BOARD "AVR328" #define RT_HW_CODE_BOARD RT_HW_CODE_AVR328 #define RT_HW_LED_BUILTIN 13 #define RT_HW_NUM_DIGITAL_PINS 20 #define RT_HW_NUM_ANALOG_PINS 8 //----------------- AVR ATmega2560,256 ----------------------------------------- #elif RT_HW_DEFINED_MEGA2560 #define RT_HW_NAME_BOARD "MEGA2560" #define RT_HW_CODE_BOARD RT_HW_CODE_MEGA2560 #define RT_HW_LED_BUILTIN 13 #define RT_HW_NUM_DIGITAL_PINS 54 #define RT_HW_NUM_ANALOG_PINS 16 //----------------- SAM32X8E DUE ---------------------------------------------- #elif RT_HW_DEFINED_SAM3X8E #define RT_HW_NAME_BOARD "SAM3X8E" #define RT_HW_CODE_BOARD RT_HW_CODE_SAM3X8E #define RT_HW_LED_BUILTIN 13 #define RT_HW_NUM_DIGITAL_PINS 54 #define RT_HW_NUM_ANALOG_PINS 16 //--------------- ESP8266 ---------------------------------------------------- #elif RT_HW_DEFINED_ESP8266 #define RT_HW_NAME_BOARD "ESP8266" #define RT_HW_CODE_BOARD RT_HW_CODE_ESP8266 #define RT_HW_LED_BUILTIN 2 #define RT_HW_NUM_DIGITAL_PINS 12 #define RT_HW_NUM_ANALOG_PINS 1 //----------------- ESP32 ------------------------------------------------------ #elif RT_HW_DEFINED_ESP32 #define RT_HW_NAME_BOARD "ESP32" #define RT_HW_CODE_BOARD RT_HW_CODE_ESP32 #define RT_HW_LED_BUILTIN 23 #define RT_HW_NUM_DIGITAL_PINS 34 #define RT_HW_NUM_ANALOG_PINS 10 //----------------- STM32 ------------------------------------------------------ #elif RT_HW_DEFINED_STM32 #define RT_HW_NAME_BOARD "STM32" #define RT_HW_CODE_BOARD RT_HW_CODE_STM32 #define RT_HW_LED_BUILTIN 32 #define RT_HW_NUM_DIGITAL_PINS 33 #define RT_HW_NUM_ANALOG_PINS 10 //----------------- NO_TYPE_CONTROLLER ----------------------------------------- #else #define RT_HW_NAME_BOARD "ANON" #define RT_HW_CODE_BOARD RT_HW_CODE_ANON #define RT_HW_LED_BUILTIN -1 #define RT_HW_NUM_DIGITAL_PINS 0 #define RT_HW_NUM_ANALOG_PINS 0 #endif //============================================================================= bool bl; void setup() { pinMode(RT_HW_LED_BUILTIN,OUTPUT); Serial.begin(115200); while (!Serial) {digitalWrite(RT_HW_LED_BUILTIN,!digitalRead(RT_HW_LED_BUILTIN)); delay(100);} Serial.println(String("name=") + RT_HW_NAME_BOARD + String(" num_LED_BUILTIN=") + String(RT_HW_LED_BUILTIN)); } void loop() {bl=!bl; digitalWrite(RT_HW_LED_BUILTIN,bl);}