From d96e9f907e17900a59247ba6d28d33c26a1c4468 Mon Sep 17 00:00:00 2001 From: Nick Foster Date: Fri, 13 Aug 2010 13:07:14 -0700 Subject: Increased UART timeout for slow Jackson Labs GPSDO. Fixed up timeout code. --- firmware/microblaze/lib/hal_io.c | 1 + firmware/microblaze/lib/hal_uart.c | 2 +- firmware/microblaze/lib/hal_uart.h | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) (limited to 'firmware/microblaze') diff --git a/firmware/microblaze/lib/hal_io.c b/firmware/microblaze/lib/hal_io.c index 0e3754958..f93b20030 100644 --- a/firmware/microblaze/lib/hal_io.c +++ b/firmware/microblaze/lib/hal_io.c @@ -258,6 +258,7 @@ fngets_timeout(hal_uart_name_t u, char * const s, int len) char *x = s; while(((*x=(char)hal_uart_getc_timeout(u)) != '\n') && ((x-s) < len)) x++; *x = 0; + if(x==s) return 0; return (x-s)-1; } diff --git a/firmware/microblaze/lib/hal_uart.c b/firmware/microblaze/lib/hal_uart.c index 4d754d5e5..9697f5b20 100644 --- a/firmware/microblaze/lib/hal_uart.c +++ b/firmware/microblaze/lib/hal_uart.c @@ -109,7 +109,7 @@ hal_uart_getc_timeout(hal_uart_name_t u) while (((uart_regs[u].rxlevel) == 0) && (timeout++ < HAL_UART_TIMEOUT_MS)) mdelay(1); - return (uart_regs[u].rxlevel == 0) ? 0 : uart_regs[u].rxchar; + return (timeout == HAL_UART_TIMEOUT_MS) ? '\n' : uart_regs[u].rxchar; //return a newline if nothing there, this will trip fngets to quit } int hal_uart_rx_flush(hal_uart_name_t u) diff --git a/firmware/microblaze/lib/hal_uart.h b/firmware/microblaze/lib/hal_uart.h index b9b0a5e14..758c8cb5e 100644 --- a/firmware/microblaze/lib/hal_uart.h +++ b/firmware/microblaze/lib/hal_uart.h @@ -27,7 +27,7 @@ #define DEFAULT_UART UART_DEBUG //which UART printf, gets, etc. use -#define HAL_UART_TIMEOUT_MS 100 +#define HAL_UART_TIMEOUT_MS 300 typedef enum { US_9600 = 0, -- cgit v1.2.3