X-Git-Url: https://robinkrens.nl/gitweb/?a=blobdiff_plain;f=uart.c;h=a3905c4e0cd4f0e1eb1533a16baf02ee9d1cc41b;hb=3f9ee85c250250580f0ceb38525ddb99ebc6d36e;hp=93b2c916cbf4b7955ccba5ad3b4d8e7fa069cca7;hpb=22c1abee1ad44eb88784fd7ff38ca669f41b6c01;p=cortex-from-scratch diff --git a/uart.c b/uart.c index 93b2c91..a3905c4 100644 --- a/uart.c +++ b/uart.c @@ -43,6 +43,9 @@ void uart_init() { */ } +void wait() { + for (int i = 0; i < 100; i++); +} extern void uart_putc(unsigned char ch) { @@ -50,15 +53,16 @@ extern void uart_putc(unsigned char ch) { while (*USART1_SR & 0x0C) { } // transmit data register empty and complete *USART1_DR = 0x0D; // return line } - - while ((*USART1_SR & 0xFF) == 0x0C) {} // busy bit + + + while (*USART1_SR & 0x0C) {} *USART1_DR = ch; -} -void wait() { - for (int i = 0; i < 100; i++); + + wait(); } + extern void uart_puts(unsigned char *str) { @@ -66,7 +70,6 @@ extern void uart_puts(unsigned char *str) for (i = 0; i < strlen(str); i++) { - wait(); uart_putc(str[i]); } }