summaryrefslogtreecommitdiff
path: root/MissingLink/Output.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'MissingLink/Output.cpp')
-rw-r--r--MissingLink/Output.cpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/MissingLink/Output.cpp b/MissingLink/Output.cpp
new file mode 100644
index 0000000..e034dbc
--- /dev/null
+++ b/MissingLink/Output.cpp
@@ -0,0 +1,54 @@
+/*
+ * MissingLink Firmware
+ * Copyright 2011 Jabrudian Industries LLC
+ *
+ * MissingLink Firmware is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * MissingLink Firmware is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with MissingLink Firmware. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+#include "Output.h"
+#include "MLSerial.h"
+
+#ifdef DEBUG_OUT
+
+// we need fundamental FILE definitions and printf declarations
+#include <stdio.h>
+
+// create a FILE structure to reference our UART output function
+
+static FILE uartout = {0} ;
+
+// create a output function
+// This works because Serial.write, although of
+// type virtual, already exists.
+static int uart_putchar (char c, FILE *stream)
+{
+ Serial.write(c);
+ return 0 ;
+}
+
+#endif
+
+void initOutput()
+{
+#ifndef DEBUG_OUT
+ Serial.begin(31250);
+#else
+ Serial.begin(9600);
+ // fill in the UART file descriptor with pointer to writer.
+ fdev_setup_stream (&uartout, uart_putchar, NULL, _FDEV_SETUP_WRITE);
+
+ // The uart is the standard output device STDOUT.
+ stdout = &uartout ;
+#endif
+}