diff --git a/cores/beken-72xx/arduino/src/ArduinoFamily.h b/cores/beken-72xx/arduino/src/ArduinoFamily.h index 88c4184..9e3801c 100644 --- a/cores/beken-72xx/arduino/src/ArduinoFamily.h +++ b/cores/beken-72xx/arduino/src/ArduinoFamily.h @@ -1,6 +1,27 @@ -/* Copyright (c) Kuba SzczodrzyƄski 2022-06-14. */ +/* Copyright (c) Kuba SzczodrzyƄski 2023-03-02. */ #pragma once // Provide GPIO names to variant.cpp files #define LT_VARIANT_INCLUDE "gpio_pub.h" + +#include + +#ifdef __cplusplus +extern "C" { +#endif // __cplusplus + +extern void vPortClearInterruptMask(uint32_t ulNewMaskValue); +extern uint32_t ulPortSetInterruptMask(void); + +// TODO +// #define clockCyclesPerMicrosecond() (SystemCoreClock / 1000000L) +// #define clockCyclesToMicroseconds(a) (a * 1000L / (SystemCoreClock / 1000L)) +// #define microsecondsToClockCycles(a) (a * (SystemCoreClock / 1000000L)) + +#define interrupts() vPortClearInterruptMask(0) +#define noInterrupts() ulPortSetInterruptMask() + +#ifdef __cplusplus +} // extern "C" +#endif diff --git a/cores/common/arduino/src/Arduino.h b/cores/common/arduino/src/Arduino.h index 285d593..5c392e9 100644 --- a/cores/common/arduino/src/Arduino.h +++ b/cores/common/arduino/src/Arduino.h @@ -5,6 +5,10 @@ // LibreTuya C API (with C standard libraries) #include +// Additional C libraries +#include +#include + // C++ standard libraries #ifdef __cplusplus #include diff --git a/cores/common/arduino/src/wiring_compat.h b/cores/common/arduino/src/wiring_compat.h index 6d4197c..622452d 100644 --- a/cores/common/arduino/src/wiring_compat.h +++ b/cores/common/arduino/src/wiring_compat.h @@ -29,6 +29,10 @@ extern "C" { #define attachInterruptArg attachInterruptParam #define voidFuncPtrArg voidFuncPtrParam +// Additional Arduino compatibility macros +#define round(x) ((x) >= 0 ? (long)((x) + 0.5) : (long)((x)-0.5)) +#define digitalPinToInterrupt(pin) (pin) + // FreeRTOS utilities #if LT_HAS_FREERTOS // if xCoreID < 0 or CPU is unicore, it will use xTaskCreate, else xTaskCreatePinnedToCore