From eb007c35d27f94eb880653a39ba21930cae497bd Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Fri, 11 Sep 2020 16:12:49 +0300 Subject: [PATCH] Macros initial --- Firmware/Marlin.h | 7 +------ Firmware/Marlin_main.cpp | 9 +++------ Firmware/backlight.cpp | 6 +++--- Firmware/language.c | 6 +++--- Firmware/language.h | 4 +--- Firmware/macros.h | 18 ++++++++++++++++++ Firmware/tone04.c | 12 +++--------- Firmware/uart2.c | 5 +++-- 8 files changed, 35 insertions(+), 32 deletions(-) create mode 100644 Firmware/macros.h diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index a1736e9c2..6e4b24206 100755 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -4,7 +4,7 @@ #ifndef MARLIN_H #define MARLIN_H -#define FORCE_INLINE __attribute__((always_inline)) inline +#include "macros.h" #include #include @@ -287,11 +287,6 @@ FORCE_INLINE unsigned long millis_nc() { void setPwmFrequency(uint8_t pin, int val); #endif -#ifndef CRITICAL_SECTION_START - #define CRITICAL_SECTION_START unsigned char _sreg = SREG; cli(); - #define CRITICAL_SECTION_END SREG = _sreg; -#endif //CRITICAL_SECTION_START - extern bool fans_check_enabled; extern float homing_feedrate[]; extern uint8_t axis_relative_modes; diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 85d54d3b5..4ea488946 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -47,7 +47,9 @@ #include "Configuration.h" #include "Marlin.h" #include "config.h" - + +#include "macros.h" + #ifdef ENABLE_AUTO_BED_LEVELING #include "vector_3.h" #ifdef AUTO_BED_LEVELING_GRID @@ -139,11 +141,6 @@ #include "cmdqueue.h" #include "io_atmega2560.h" -// Macros for bit masks -#define BIT(b) (1<<(b)) -#define TEST(n,b) (((n)&BIT(b))!=0) -#define SET_BIT(n,b,value) (n) ^= ((-value)^(n)) & (BIT(b)) - //Macro for print fan speed #define FAN_PULSE_WIDTH_LIMIT ((fanSpeed > 100) ? 3 : 4) //time in ms diff --git a/Firmware/backlight.cpp b/Firmware/backlight.cpp index 6500837e5..b59a65ef4 100644 --- a/Firmware/backlight.cpp +++ b/Firmware/backlight.cpp @@ -1,10 +1,10 @@ //backlight.cpp #include "backlight.h" +#include "macros.h" #include #include #include "eeprom.h" -#include "Marlin.h" #include "pins.h" #include "fastio.h" #include "Timer.h" @@ -111,10 +111,10 @@ void backlight_init() #else //LCD_BL_PIN -void force_bl_on(__attribute__((unused)) bool section_start) {} +void force_bl_on(_UNUSED bool section_start) {} void backlight_update() {} void backlight_init() {} void backlight_save() {} -void backlight_wake(__attribute__((unused)) const uint8_t flashNo) {} +void backlight_wake(_UNUSED const uint8_t flashNo) {} #endif //LCD_BL_PIN \ No newline at end of file diff --git a/Firmware/language.c b/Firmware/language.c index e43760967..f7d02b22a 100644 --- a/Firmware/language.c +++ b/Firmware/language.c @@ -17,10 +17,10 @@ uint8_t lang_selected = 0; #if (LANG_MODE == 0) //primary language only -uint8_t lang_select(__attribute__((unused)) uint8_t lang) { return 0; } +uint8_t lang_select(_UNUSED uint8_t lang) { return 0; } uint8_t lang_get_count() { return 1; } -uint16_t lang_get_code(__attribute__((unused)) uint8_t lang) { return LANG_CODE_EN; } -const char* lang_get_name_by_code(__attribute__((unused)) uint16_t code) { return _n("English"); } +uint16_t lang_get_code(_UNUSED uint8_t lang) { return LANG_CODE_EN; } +const char* lang_get_name_by_code(_UNUSED uint16_t code) { return _n("English"); } void lang_reset(void) { } uint8_t lang_is_selected(void) { return 1; } diff --git a/Firmware/language.h b/Firmware/language.h index 1e4137bf3..4f89b9f25 100644 --- a/Firmware/language.h +++ b/Firmware/language.h @@ -5,6 +5,7 @@ #include "config.h" +#include "macros.h" #include #ifdef DEBUG_SEC_LANG #include @@ -22,9 +23,6 @@ #define MSG_FW_VERSION "Firmware" -#define STRINGIFY_(n) #n -#define STRINGIFY(n) STRINGIFY_(n) - #if (LANG_MODE == 0) //primary language only #define PROGMEM_I2 __attribute__((section(".progmem0"))) #define PROGMEM_I1 __attribute__((section(".progmem1"))) diff --git a/Firmware/macros.h b/Firmware/macros.h new file mode 100644 index 000000000..c27dbde77 --- /dev/null +++ b/Firmware/macros.h @@ -0,0 +1,18 @@ +#ifndef MACROS_H +#define MACROS_H + + +#define FORCE_INLINE __attribute__((always_inline)) inline +#define _UNUSED __attribute__((unused)) + +#ifndef CRITICAL_SECTION_START + #define CRITICAL_SECTION_START unsigned char _sreg = SREG; cli(); + #define CRITICAL_SECTION_END SREG = _sreg; +#endif //CRITICAL_SECTION_START + +// Macros to make a string from a macro +#define STRINGIFY_(M) #M +#define STRINGIFY(M) STRINGIFY_(M) + + +#endif //MACROS_H diff --git a/Firmware/tone04.c b/Firmware/tone04.c index 41f904a91..42b19682f 100644 --- a/Firmware/tone04.c +++ b/Firmware/tone04.c @@ -10,14 +10,8 @@ #include #include #include "pins.h" - -#ifndef CRITICAL_SECTION_START - #define CRITICAL_SECTION_START unsigned char _sreg = SREG; cli(); - #define CRITICAL_SECTION_END SREG = _sreg; -#endif //CRITICAL_SECTION_START - - #include "fastio.h" +#include "macros.h" void timer4_init(void) { @@ -79,7 +73,7 @@ ISR(TIMER4_OVF_vect) WRITE(BEEPER, 0); } -void tone4(__attribute__((unused)) uint8_t _pin, uint16_t frequency) +void tone4(_UNUSED uint8_t _pin, uint16_t frequency) { //this ocr and prescalarbits calculation is taken from the Arduino core and simplified for one type of timer only uint8_t prescalarbits = 0b001; @@ -105,7 +99,7 @@ void tone4(__attribute__((unused)) uint8_t _pin, uint16_t frequency) CRITICAL_SECTION_END; } -void noTone4(__attribute__((unused)) uint8_t _pin) +void noTone4(_UNUSED uint8_t _pin) { CRITICAL_SECTION_START; // Revert prescaler to CLK/1024 diff --git a/Firmware/uart2.c b/Firmware/uart2.c index 472389994..9a2a724e1 100644 --- a/Firmware/uart2.c +++ b/Firmware/uart2.c @@ -4,6 +4,7 @@ #include #include #include "rbuf.h" +#include "macros.h" #define UART2_BAUD 115200 #define UART_BAUD_SELECT(baudRate,xtalCpu) (((float)(xtalCpu))/(((float)(baudRate))*8.0)-1.0+0.5) @@ -16,7 +17,7 @@ uint8_t uart2_ibuf[14] = {0, 0}; FILE _uart2io = {0}; -int uart2_putchar(char c, FILE *stream __attribute__((unused))) +int uart2_putchar(char c, _UNUSED FILE *stream) { while (!uart2_txready); UDR2 = c; // transmit byte @@ -25,7 +26,7 @@ int uart2_putchar(char c, FILE *stream __attribute__((unused))) return 0; } -int uart2_getchar(FILE *stream __attribute__((unused))) +int uart2_getchar(_UNUSED FILE *stream) { if (rbuf_empty(uart2_ibuf)) return -1; return rbuf_get(uart2_ibuf);