diff --git a/Marlin/src/HAL/HAL_STM32F4/HAL.h b/Marlin/src/HAL/HAL_STM32F4/HAL.h index 20d9e05999..b0abf81995 100644 --- a/Marlin/src/HAL/HAL_STM32F4/HAL.h +++ b/Marlin/src/HAL/HAL_STM32F4/HAL.h @@ -110,6 +110,7 @@ #define NUM_SERIAL 1 #endif +#undef _BV #define _BV(b) (1 << (b)) /** diff --git a/Marlin/src/HAL/HAL_STM32F4/fastio_STM32F4.h b/Marlin/src/HAL/HAL_STM32F4/fastio_STM32F4.h index e185344dc2..d102e64f75 100644 --- a/Marlin/src/HAL/HAL_STM32F4/fastio_STM32F4.h +++ b/Marlin/src/HAL/HAL_STM32F4/fastio_STM32F4.h @@ -29,6 +29,7 @@ #ifndef _FASTIO_STM32F4_H #define _FASTIO_STM32F4_H +#undef _BV #define _BV(b) (1 << (b)) #define USEABLE_HARDWARE_PWM(p) true diff --git a/Marlin/src/core/enum.h b/Marlin/src/core/enum.h index d9a3cd18c2..bf30f7b628 100644 --- a/Marlin/src/core/enum.h +++ b/Marlin/src/core/enum.h @@ -69,20 +69,4 @@ typedef enum { TEMPUNIT_F } TempUnit; -/** - * SD Card - */ -enum LsAction : char { LS_SerialPrint, LS_Count, LS_GetFilename }; - -/** - * Ultra LCD - */ -enum LCDViewAction : char { - LCDVIEW_NONE, - LCDVIEW_REDRAW_NOW, - LCDVIEW_CALL_REDRAW_NEXT, - LCDVIEW_CLEAR_CALL_REDRAW, - LCDVIEW_CALL_NO_REDRAW -}; - #endif // __ENUM_H__ diff --git a/Marlin/src/core/macros.h b/Marlin/src/core/macros.h index 520c10fc78..df21b0519f 100644 --- a/Marlin/src/core/macros.h +++ b/Marlin/src/core/macros.h @@ -57,7 +57,7 @@ #define NANOSECONDS_PER_CYCLE (1000000000.0 / F_CPU) // Remove compiler warning on an unused variable -#define UNUSED(x) (void) (x) +#define UNUSED(x) ((void)(x)) // Macros to make a string from a macro #define STRINGIFY_(M) #M diff --git a/Marlin/src/core/minmax.h b/Marlin/src/core/minmax.h index 126a738b95..e45544ff69 100644 --- a/Marlin/src/core/minmax.h +++ b/Marlin/src/core/minmax.h @@ -20,26 +20,29 @@ * */ -#pragma once - #undef MIN #undef MAX #ifdef __cplusplus - extern "C++" { + #ifndef _MINMAX_H_ + #define _MINMAX_H_ - // C++11 solution that is standards compliant. Return type is deduced automatically - template static inline constexpr auto MIN(const L lhs, const R rhs) -> decltype(lhs + rhs) { - return lhs < rhs ? lhs : rhs; - } - template static inline constexpr auto MAX(const L lhs, const R rhs) -> decltype(lhs + rhs) { - return lhs > rhs ? lhs : rhs; - } - template static inline constexpr const T MIN(T V, Ts... Vs) { return MIN(V, MIN(Vs...)); } - template static inline constexpr const T MAX(T V, Ts... Vs) { return MAX(V, MAX(Vs...)); } + extern "C++" { - } + // C++11 solution that is standards compliant. Return type is deduced automatically + template static inline constexpr auto MIN(const L lhs, const R rhs) -> decltype(lhs + rhs) { + return lhs < rhs ? lhs : rhs; + } + template static inline constexpr auto MAX(const L lhs, const R rhs) -> decltype(lhs + rhs) { + return lhs > rhs ? lhs : rhs; + } + template static inline constexpr const T MIN(T V, Ts... Vs) { return MIN(V, MIN(Vs...)); } + template static inline constexpr const T MAX(T V, Ts... Vs) { return MAX(V, MAX(Vs...)); } + + } + + #endif #else diff --git a/Marlin/src/inc/MarlinConfig.h b/Marlin/src/inc/MarlinConfig.h index 539726e405..a6d48a18e5 100644 --- a/Marlin/src/inc/MarlinConfig.h +++ b/Marlin/src/inc/MarlinConfig.h @@ -43,5 +43,6 @@ #include "../core/language.h" #include "../core/utility.h" #include "../core/serial.h" +#include "../core/minmax.h" #endif // _MARLIN_CONFIG_H_ diff --git a/Marlin/src/lcd/ultralcd.cpp b/Marlin/src/lcd/ultralcd.cpp index 97632e8cd4..c6409ad07c 100644 --- a/Marlin/src/lcd/ultralcd.cpp +++ b/Marlin/src/lcd/ultralcd.cpp @@ -117,10 +117,9 @@ uint8_t lcd_status_update_delay = 1, // First update one loop delayed // The main status screen void lcd_status_screen(); -millis_t next_lcd_update_ms; - -uint8_t lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; // Set when the LCD needs to draw, decrements after every draw. Set to 2 in LCD routines so the LCD gets at least 1 full redraw (first redraw is partial) +LCDViewAction lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; uint16_t max_display_update_time = 0; +millis_t next_lcd_update_ms; #if ENABLED(ULTIPANEL) diff --git a/Marlin/src/lcd/ultralcd.h b/Marlin/src/lcd/ultralcd.h index 05376cd2ce..0468dcdfdd 100644 --- a/Marlin/src/lcd/ultralcd.h +++ b/Marlin/src/lcd/ultralcd.h @@ -57,7 +57,15 @@ void lcd_kill_screen(); void kill_screen(PGM_P lcd_msg); - extern uint8_t lcdDrawUpdate; + enum LCDViewAction : uint8_t { + LCDVIEW_NONE, + LCDVIEW_REDRAW_NOW, + LCDVIEW_CALL_REDRAW_NEXT, + LCDVIEW_CLEAR_CALL_REDRAW, + LCDVIEW_CALL_NO_REDRAW + }; + + extern LCDViewAction lcdDrawUpdate; inline void lcd_refresh() { lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; } #if HAS_BUZZER diff --git a/Marlin/src/sd/cardreader.h b/Marlin/src/sd/cardreader.h index 8e29bd9a6f..1e2f685fcf 100644 --- a/Marlin/src/sd/cardreader.h +++ b/Marlin/src/sd/cardreader.h @@ -33,6 +33,8 @@ #include "SdFile.h" +enum LsAction : uint8_t { LS_SerialPrint, LS_Count, LS_GetFilename }; + class CardReader { public: CardReader(); diff --git a/frameworks/CMSIS/LPC1768/include/lpc_types.h b/frameworks/CMSIS/LPC1768/include/lpc_types.h index 022b88feeb..516e0114f7 100644 --- a/frameworks/CMSIS/LPC1768/include/lpc_types.h +++ b/frameworks/CMSIS/LPC1768/include/lpc_types.h @@ -145,8 +145,6 @@ typedef int32_t(*PFI)(); /* External data/function define */ #define EXTERN extern -#include "../../../../src/core/minmax.h" - /** * @} */