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; }
PwmOscillator.h@2:d9fea7c1fc8d, 2012-12-14 (annotated)
- 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?
User | Revision | Line number | New 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 |