AVR-UART-lib icon indicating copy to clipboard operation
AVR-UART-lib copied to clipboard

small code improvements

Open dambo1993 opened this issue 5 years ago • 0 comments

Hi - a little advice - you have a lot od #define in code. for example:

void uart0_reinit(uint16_t ubrr_value)
{
	#ifdef USART0_USE_SOFT_RTS
		RTS0_PORT |= (1<<RTS0_IONUM);
	#endif
		
	#ifdef USART0_RS485_MODE
		RS485_CONTROL0_PORT &= ~(1<<RS485_CONTROL0_IONUM); //set low
		RS485_CONTROL0_DDR |= (1<<RS485_CONTROL0_IONUM);
	#endif
		
          // rest of the function
}

you can simply hide #defines by implement static functions:

static void USART0_USE_SOFT_RTS_func(void)
{
	#ifdef USART0_USE_SOFT_RTS
		RTS0_PORT |= (1<<RTS0_IONUM);
	#endif
}
static void USART0_RS485_MODE_on(void)
{
	#ifdef USART0_RS485_MODE
		RS485_CONTROL0_PORT &= ~(1<<RS485_CONTROL0_IONUM); //set low
		RS485_CONTROL0_DDR |= (1<<RS485_CONTROL0_IONUM);
	#endif
}

void uart0_reinit(uint16_t ubrr_value)
{
                USART0_USE_SOFT_RTS_func();
		USART0_RS485_MODE_on();
		
                // rest of the function
}
}

compiler will remove all unused jumps etc - and functions are easier to read. Of course- just in my opinion.

dambo1993 avatar Mar 10 '19 15:03 dambo1993