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;
}
Committer:
geotec
Date:
Fri Dec 14 14:47:22 2012 +0000
Revision:
2:d9fea7c1fc8d
Parent:
1:4bbb380a1089
Added #definition to prevent multiple includes

Who changed what in which revision?

UserRevisionLine numberNew contents of line
geotec 2:d9fea7c1fc8d 1 #ifndef MBED_PWMOSCILLATOR_H
geotec 2:d9fea7c1fc8d 2 #define MBED_PWMOSCILLATOR_H
geotec 2:d9fea7c1fc8d 3
geotec 2:d9fea7c1fc8d 4 #include "mbed.h"
geotec 2:d9fea7c1fc8d 5
geotec 2:d9fea7c1fc8d 6 /** Creates square-wave frequency output on pin22 with custom frequency. Tested for frequencies from 1Hz to 48MHz.
geotec 2:d9fea7c1fc8d 7 * 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%.
geotec 2:d9fea7c1fc8d 8 * Uses Library FastPWM ( http://mbed.org/users/Sissors/code/FastPWM/ ). */
geotec 2:d9fea7c1fc8d 9 class PwmOscillator
geotec 2:d9fea7c1fc8d 10 {
geotec 2:d9fea7c1fc8d 11
geotec 2:d9fea7c1fc8d 12 public:
geotec 2:d9fea7c1fc8d 13
geotec 2:d9fea7c1fc8d 14 /** Initialize PwmOscillator instance with frequency [Hz].
geotec 2:d9fea7c1fc8d 15 * @param frequencyHz = frequency in Hz (1 ... 48000000) */
geotec 2:d9fea7c1fc8d 16 void initWithFrequency(int frequencyHz);
geotec 2:d9fea7c1fc8d 17
geotec 2:d9fea7c1fc8d 18 /** Start oscillator
geotec 2:d9fea7c1fc8d 19 */
geotec 2:d9fea7c1fc8d 20 void start();
geotec 2:d9fea7c1fc8d 21
geotec 2:d9fea7c1fc8d 22 /** Stop oscillator
geotec 2:d9fea7c1fc8d 23 */
geotec 2:d9fea7c1fc8d 24 void stop();
geotec 2:d9fea7c1fc8d 25 };
geotec 2:d9fea7c1fc8d 26
geotec 2:d9fea7c1fc8d 27 #endif