OSDN Git Service

Added getc interface.
authorShinichiro Nakamura <shinta.main.jp@gmail.com>
Sun, 26 Aug 2012 20:45:15 +0000 (05:45 +0900)
committerShinichiro Nakamura <shinta.main.jp@gmail.com>
Sun, 26 Aug 2012 20:45:15 +0000 (05:45 +0900)
firm/bare_metal/common/uart.c
firm/bare_metal/common/uart.h

index 6315b65..6223bfa 100644 (file)
@@ -68,13 +68,22 @@ void uart_init(void)
     *pPORTF_FER |= PF11 | PF12;     /* PF11,PF12をUART0に割り振る */
 }
 
-void uart_putc(char ch)
+void uart_putc(char c)
 {
     /* UART0 LSRのTHREが1になるまで待つ。1ならば送信レジスタ空き */
     while (0 == (*pUART0_LSR & THRE)) {
         ssync();
     }
-    *pUART0_THR = ch;   /* 一文字送信 */
+    *pUART0_THR = c;
     ssync();
 }
 
+char uart_getc(void)
+{
+    /* UART0_LSRのDRが1になるまで待つ。1ならば受信レジスタにデータあり */
+    while (0 == (*pUART0_LSR & DR)) {
+        ssync();
+    }
+    return *pUART0_RBR;
+}
+
index 3591287..43a0be9 100644 (file)
@@ -37,7 +37,8 @@
 #define UART_H
 
 void uart_init(void);
-void uart_putc(char ch);
+void uart_putc(char c);
+char uart_getc(void);
 
 #endif