Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
DtPWM.h@0:f4cf8380dbee, 2017-03-25 (annotated)
- Committer:
- dontknowhow
- Date:
- Sat Mar 25 17:26:48 2017 +0000
- Revision:
- 0:f4cf8380dbee
- Child:
- 2:1ef7ff2f120e
With interrupts at MR0 and MR5
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| dontknowhow | 0:f4cf8380dbee | 1 | #include "mbed.h" |
| dontknowhow | 0:f4cf8380dbee | 2 | |
| dontknowhow | 0:f4cf8380dbee | 3 | #ifndef DTPWM_H |
| dontknowhow | 0:f4cf8380dbee | 4 | #define DTPWM_H |
| dontknowhow | 0:f4cf8380dbee | 5 | |
| dontknowhow | 0:f4cf8380dbee | 6 | /** Library for fast and high resolution opposite PWM output with |
| dontknowhow | 0:f4cf8380dbee | 7 | * controllable dead times |
| dontknowhow | 0:f4cf8380dbee | 8 | */ |
| dontknowhow | 0:f4cf8380dbee | 9 | |
| dontknowhow | 0:f4cf8380dbee | 10 | class DtPWM{ |
| dontknowhow | 0:f4cf8380dbee | 11 | public: |
| dontknowhow | 0:f4cf8380dbee | 12 | /** |
| dontknowhow | 0:f4cf8380dbee | 13 | * Create a dtPWM object connected to channel 2 and 4, optionally to LED 2&4 |
| dontknowhow | 0:f4cf8380dbee | 14 | * |
| dontknowhow | 0:f4cf8380dbee | 15 | * @param led - false does not connect LEDs (default) |
| dontknowhow | 0:f4cf8380dbee | 16 | */ |
| dontknowhow | 0:f4cf8380dbee | 17 | DtPWM(bool led = false); |
| dontknowhow | 0:f4cf8380dbee | 18 | ~DtPWM(); |
| dontknowhow | 0:f4cf8380dbee | 19 | |
| dontknowhow | 0:f4cf8380dbee | 20 | /** |
| dontknowhow | 0:f4cf8380dbee | 21 | * Set the period, duty cycle, and dead time. |
| dontknowhow | 0:f4cf8380dbee | 22 | * |
| dontknowhow | 0:f4cf8380dbee | 23 | * @param p_us - period in micro seconds |
| dontknowhow | 0:f4cf8380dbee | 24 | * @param d - duty cycle from 0-1 as float |
| dontknowhow | 0:f4cf8380dbee | 25 | * @param dt_us - dead time between switching in micro seconds |
| dontknowhow | 0:f4cf8380dbee | 26 | */ |
| dontknowhow | 0:f4cf8380dbee | 27 | void setDtPWM(double p_us, float d, double dt_us); |
| dontknowhow | 0:f4cf8380dbee | 28 | |
| dontknowhow | 0:f4cf8380dbee | 29 | /** |
| dontknowhow | 0:f4cf8380dbee | 30 | * Value for maximum duty cycle that fulfils minimum dead times |
| dontknowhow | 0:f4cf8380dbee | 31 | */ |
| dontknowhow | 0:f4cf8380dbee | 32 | float d_max; |
| dontknowhow | 0:f4cf8380dbee | 33 | |
| dontknowhow | 0:f4cf8380dbee | 34 | /** |
| dontknowhow | 0:f4cf8380dbee | 35 | * Fast way to change the duty cycle. |
| dontknowhow | 0:f4cf8380dbee | 36 | * |
| dontknowhow | 0:f4cf8380dbee | 37 | * @param d - duty cycle from 0-1 as float no checking is done in this function |
| dontknowhow | 0:f4cf8380dbee | 38 | */ |
| dontknowhow | 0:f4cf8380dbee | 39 | void setD(float d); |
| dontknowhow | 0:f4cf8380dbee | 40 | |
| dontknowhow | 0:f4cf8380dbee | 41 | private: |
| dontknowhow | 0:f4cf8380dbee | 42 | unsigned int p_tcks; // clock ticks in period |
| dontknowhow | 0:f4cf8380dbee | 43 | unsigned int dt_tcks; // dead time ticks |
| dontknowhow | 0:f4cf8380dbee | 44 | }; |
| dontknowhow | 0:f4cf8380dbee | 45 | #endif |