Creates square-wave frequency output on pin p22. Custom frequency between 1Hz and 48 MHz. (LPC 1768)
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, committed 2012-12-14
- Comitter:
- geotec
- Date:
- Fri Dec 14 14:47:22 2012 +0000
- Parent:
- 1:4bbb380a1089
- Commit message:
- Added #definition to prevent multiple includes
Changed in this revision
PwmOscillator.h | Show annotated file Show diff for this revision Revisions of this file |
diff -r 4bbb380a1089 -r d9fea7c1fc8d PwmOscillator.h --- 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