Creates square-wave frequency output on pin p22. Custom frequency between 1Hz and 48 MHz. (LPC 1768)

Dependencies:   FastPWM

Creates square-wave frequency output on pin22 with custom frequency.

Tested for frequencies from 1Hz to 48MHz. The accuracy depends heavily on the frequency - at 12, 24, 48 MHz the frequency deviation is less than 1%, but at 20 MHz it is about 20%.

Uses Library FastPWM ( http://mbed.org/users/Sissors/code/FastPWM/ ). For LPC 1768.

How to use this Library:

#include "mbed.h"
#include "PwmOscillator.h"

PwmOscillator oscillator;
DigitalOut led1(LED1);

int main() 
{
    oscillator.initWithFrequency(8000000);     // initialize oscillator instance (pin p22) with custom frequency, here: 8MHz
    led1=1;                                    // optional: indicator LED shows that oscillator is running
    oscillator.start();                        // start oscillator
    wait(5);                                   // optional: oscillator is running 5 seconds
    oscillator.stop();                         // stop oscillator
    led1=0;
}
Revision:
2:d9fea7c1fc8d
Parent:
1:4bbb380a1089
--- a/PwmOscillator.h	Fri Dec 14 14:39:48 2012 +0000
+++ b/PwmOscillator.h	Fri Dec 14 14:47:22 2012 +0000
@@ -1,22 +1,27 @@
-#include "mbed.h"
-
-/** Creates square-wave frequency output on pin22 with custom frequency. Tested for frequencies from 1Hz to 48MHz.
- *  The accuracy depends heavily on the frequency - at 12, 24, 48 MHz the frequency deviation is less than 1%, but at 20 MHz it is about 20%.
- *  Uses Library FastPWM ( http://mbed.org/users/Sissors/code/FastPWM/ ).       */
-class PwmOscillator
-{
-
-public:
-    
-    /** Initialize PwmOscillator instance with frequency [Hz]. 
-     * @param frequencyHz  = frequency in Hz (1 ... 48000000)     */
-    void initWithFrequency(int frequencyHz);
-
-    /** Start oscillator
-     */
-    void start();
-    
-    /** Stop oscillator 
-     */
-    void stop();
-};
+#ifndef MBED_PWMOSCILLATOR_H
+#define MBED_PWMOSCILLATOR_H
+
+#include "mbed.h"
+
+/** Creates square-wave frequency output on pin22 with custom frequency. Tested for frequencies from 1Hz to 48MHz.
+ *  The accuracy depends heavily on the frequency - at 12, 24, 48 MHz the frequency deviation is less than 1%, but at 20 MHz it is about 20%.
+ *  Uses Library FastPWM ( http://mbed.org/users/Sissors/code/FastPWM/ ).       */
+class PwmOscillator
+{
+
+public:
+    
+    /** Initialize PwmOscillator instance with frequency [Hz]. 
+     * @param frequencyHz  = frequency in Hz (1 ... 48000000)     */
+    void initWithFrequency(int frequencyHz);
+
+    /** Start oscillator
+     */
+    void start();
+    
+    /** Stop oscillator 
+     */
+    void stop();
+};
+
+#endif