From 029963cc94fbb47560118b5de73c537e2c14ed7c Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 25 Mar 2009 00:50:02 -0700 Subject: [PATCH] Eliminate array walking --- target/serial/serial.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/target/serial/serial.c b/target/serial/serial.c index 1c352831..ebe7e2fc 100644 --- a/target/serial/serial.c +++ b/target/serial/serial.c @@ -207,7 +207,7 @@ usart_init(void) UxUCR_D9_ODD_PARITY | UxUCR_BIT9_8_BITS | UxUCR_PARITY_DISABLE | - UxUCR_SPB_1_STOP_BIT | + UxUCR_SPB_2_STOP_BITS | UxUCR_STOP_HIGH | UxUCR_START_LOW); } @@ -219,7 +219,15 @@ usart_out_byte(uint8_t byte) while (!UTX1IF) ; UTX1IF = 0; - delay(1); +} + +void +usart_out_string(uint8_t *string) +{ + uint8_t b; + + while (b = *string++) + usart_out_byte(b); } uint8_t @@ -233,12 +241,8 @@ usart_in_byte(void) return b; } -static char string[] = "hello world\r\n"; - main () { - uint8_t i; - P1DIR |= 2; CLKCON = 0; while (!(SLEEP & SLEEP_XOSC_STB)) @@ -247,8 +251,7 @@ main () usart_init(); for (;;) { - for (i = 0; i < sizeof(string) - 1; i++) - usart_out_byte(string[i]); + usart_out_string("hello world\r\n"); delay(5); P1 ^= 2; } -- 2.30.2