Software UART program using Infra-Red LED and IR-Detector

Dependents:   TestVirtualisation Bf_SoftSerial_IR

Revision:
0:8edaa7abe724
Child:
1:f8b4b764ace7
diff -r 000000000000 -r 8edaa7abe724 SoftSerial.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SoftSerial.cpp	Sat Apr 26 14:46:03 2014 +0000
@@ -0,0 +1,29 @@
+#include "SoftSerial.h"
+
+SoftSerial::SoftSerial(PinName TX, PinName RX) {
+    tx_en = rx_en = false;
+    if (TX != NC) {
+        tx = new DigitalOut(TX);
+        tx_en = true;
+        tx->write(1);
+        tx_bit = -1;
+    }
+    if (RX != NC) {
+        rx = new InterruptIn(RX);
+        rx_en = true;
+        rx->fall(this, &SoftSerial::rx_gpio_irq_handler);
+    }
+    
+    baud(9600);
+    format();
+}
+
+void SoftSerial::baud(int baudrate) {
+    bit_period = 1000000 / baudrate;
+}
+
+void SoftSerial::format(int bits, Parity parity, int stop_bits) {
+    _bits = bits;
+    _parity = parity;
+    _stop_bits = stop_bits;
+}