aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kernel/tasks.h4
-rw-r--r--kernel/uart.c9
2 files changed, 9 insertions, 4 deletions
diff --git a/kernel/tasks.h b/kernel/tasks.h
index 9c0288f..020bb08 100644
--- a/kernel/tasks.h
+++ b/kernel/tasks.h
@@ -67,8 +67,8 @@ struct ppmarg {
};
void init_uart(void);
-char uart_getchar(void);
-void uart_putchar(char);
+int uart_getchar(void);
+int uart_putchar(char);
void heartbeat(void *);
void rgb(void *);
diff --git a/kernel/uart.c b/kernel/uart.c
index 9163e0b..a952758 100644
--- a/kernel/uart.c
+++ b/kernel/uart.c
@@ -21,6 +21,7 @@
#endif
#include <inttypes.h>
+#include <stdio.h>
#include <avr/io.h>
#include <avr/wdt.h>
#include <avr/interrupt.h>
@@ -28,14 +29,18 @@
#include "kernel.h"
#include "tasks.h"
-void
+int
uart_putchar(char c)
{
+ if (c == '\n')
+ uart_putchar('\r');
loop_until_bit_is_set(UCSRA, UDRE);
UDR = c;
+
+ return 0;
}
-char
+int
uart_getchar(void)
{
char c;