diff options
Diffstat (limited to 'nuttx/arch/z16/src/z16f/z16f_serial.c')
-rw-r--r-- | nuttx/arch/z16/src/z16f/z16f_serial.c | 35 |
1 files changed, 15 insertions, 20 deletions
diff --git a/nuttx/arch/z16/src/z16f/z16f_serial.c b/nuttx/arch/z16/src/z16f/z16f_serial.c index 1ca6e0377..d63c6e5dd 100644 --- a/nuttx/arch/z16/src/z16f/z16f_serial.c +++ b/nuttx/arch/z16/src/z16f/z16f_serial.c @@ -649,39 +649,35 @@ int up_putc(int ch) ****************************************************************************/ #ifdef CONFIG_UART1_SERIAL_CONSOLE -# define z16f_contrde() \ - do { \ - int tmp; \ - for (tmp = 1000 ; tmp > 0 ; tmp--) \ - if ((getreg8(Z16F_UART1_STAT0) & Z16F_UARTSTAT0_TDRE) != 0) \ - break; \ - } while (0) +# define z16f_contrde() \ + ((getreg8(Z16F_UART1_STAT0) & Z16F_UARTSTAT0_TDRE) != 0) # define z16f_contxd(ch) \ - putreg8((ubyte)(ch), Z16F_UART1_STAT0) + putreg8((ubyte)(ch), Z16F_UART1_TXD) #else -# define z16f_contrde() \ - do { \ - int tmp; \ - for (tmp = 1000 ; tmp > 0 ; tmp--) \ - if ((getreg8(Z16F_UART0_STAT0) & Z16F_UARTSTAT0_TDRE) != 0) \ - break; \ - } while (0) +# define z16f_contrde() \ + ((getreg8(Z16F_UART0_STAT0) & Z16F_UARTSTAT0_TDRE) != 0) # define z16f_contxd(ch) \ - putreg8((ubyte)(ch), Z16F_UART0_STAT0) + putreg8((ubyte)(ch), Z16F_UART0_TXD) #endif /**************************************************************************** * Private Functions ****************************************************************************/ +static void _up_putc(int ch) +{ + int tmp; + for (tmp = 1000 ; tmp > 0 && !z16f_contrde(); tmp--); + z16f_contxd(ch); +} + /**************************************************************************** * Public Functions ****************************************************************************/ int up_putc(int ch) { - z16f_contrde(); - z16f_contxd(ch); + _up_putc(ch); /* Check for LF */ @@ -689,8 +685,7 @@ int up_putc(int ch) { /* Add CR */ - z16f_contrde(); - z16f_contxd('\r'); + _up_putc('\r'); } return ch; |