Provides a simple way to generate complex square wave signals on any available pin. In addition the SignalGenerator can generate a carrier wave which is useful when generating IR signals to control electronic devices like a TV etc. The signal generation can be carried out either synchronously or asynchronously. In the case of synchronous signal generation all interrupts can optionally be disabled to improve timing accuracy.

Revision:
1:4a1bcc41c473
Parent:
0:b7c65c0d82d3
Child:
2:b2a449bd787f
--- a/SignalGenerator.cpp	Fri Sep 12 04:04:46 2014 +0000
+++ b/SignalGenerator.cpp	Fri Sep 12 04:13:43 2014 +0000
@@ -1,3 +1,6 @@
+///////////////////////////////////////////////////////////////////////////////
+// Signal Generator
+// Author: Chris Taylor (taylorza)
 #include "mbed.h"
 #include "SignalGenerator.h"
 
@@ -11,7 +14,12 @@
     _pin = pinState ? 1 : 0;
 }
 
-void SignalGenerator::set(bool initialState, uint32_t timingBuffer[], uint16_t bufferCount, uint32_t lastStateHoldTime, int carrierFrequency)
+void SignalGenerator::set(
+    bool initialState, 
+    uint32_t timingBuffer[], 
+    uint16_t bufferCount, 
+    uint32_t lastStateHoldTime, 
+    int carrierFrequency)
 {
     uint32_t carrierHalfPeriod = 0;
 
@@ -73,4 +81,4 @@
             wait_us(lastStateHoldTime);
         }
     }  
-}
\ No newline at end of file
+}