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.
lib_PwmOutAllPin.h@5:0f5ad06f23c0, 2016-05-04 (annotated)
- Committer:
- YSI
- Date:
- Wed May 04 12:16:13 2016 +0000
- Revision:
- 5:0f5ad06f23c0
- Parent:
- 4:22942b7e1635
Up Doc
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
YSI | 5:0f5ad06f23c0 | 1 | /** Lib PwmOutAllPin using TimeOut |
YSI | 3:1d1669e8c9b1 | 2 | * |
YSI | 3:1d1669e8c9b1 | 3 | * Copyright (c) 2014, cstyles (http://mbed.org) |
YSI | 3:1d1669e8c9b1 | 4 | * |
YSI | 3:1d1669e8c9b1 | 5 | * Exemple: |
YSI | 3:1d1669e8c9b1 | 6 | * @code |
YSI | 3:1d1669e8c9b1 | 7 | * #include "mbed.h" |
YSI | 3:1d1669e8c9b1 | 8 | * #include "lib_PwmOutAllPin.h" |
YSI | 3:1d1669e8c9b1 | 9 | * |
YSI | 3:1d1669e8c9b1 | 10 | * PwmOutAllPin pin1(p20); |
YSI | 3:1d1669e8c9b1 | 11 | * PwmOutAllPin pin2(p12); |
YSI | 3:1d1669e8c9b1 | 12 | * |
YSI | 3:1d1669e8c9b1 | 13 | * int main() |
YSI | 3:1d1669e8c9b1 | 14 | * { |
YSI | 3:1d1669e8c9b1 | 15 | * pin2.period(0.0002); |
YSI | 3:1d1669e8c9b1 | 16 | * pin2 = 0.25; |
YSI | 3:1d1669e8c9b1 | 17 | * pin1 = 0.5; |
YSI | 3:1d1669e8c9b1 | 18 | * pin1.period_us(20); |
YSI | 3:1d1669e8c9b1 | 19 | * |
YSI | 3:1d1669e8c9b1 | 20 | * while(1) |
YSI | 3:1d1669e8c9b1 | 21 | * { |
YSI | 3:1d1669e8c9b1 | 22 | * wait(0.25); |
YSI | 3:1d1669e8c9b1 | 23 | * } |
YSI | 3:1d1669e8c9b1 | 24 | * } |
YSI | 3:1d1669e8c9b1 | 25 | * @endcode |
YSI | 3:1d1669e8c9b1 | 26 | * @file lib_PwmOutAllPin.h |
YSI | 3:1d1669e8c9b1 | 27 | * @purpose library for PwmOut on all pins |
YSI | 3:1d1669e8c9b1 | 28 | * @date 2015 |
YSI | 3:1d1669e8c9b1 | 29 | * @author Yannic Simon |
YSI | 3:1d1669e8c9b1 | 30 | */ |
YSI | 3:1d1669e8c9b1 | 31 | |
YSI | 0:0e01d184dbab | 32 | #ifndef DEF_lib_PwmOutAllPin_H |
YSI | 0:0e01d184dbab | 33 | #define DEF_lib_PwmOutAllPin_H |
YSI | 0:0e01d184dbab | 34 | |
YSI | 0:0e01d184dbab | 35 | #include "mbed.h" |
YSI | 5:0f5ad06f23c0 | 36 | /** PwmOutAllPin class |
YSI | 5:0f5ad06f23c0 | 37 | */ |
YSI | 0:0e01d184dbab | 38 | class PwmOutAllPin : public Timeout |
YSI | 0:0e01d184dbab | 39 | { |
YSI | 0:0e01d184dbab | 40 | public: |
YSI | 4:22942b7e1635 | 41 | /** Crée un PwmOutAllPin connecté à la pin spécifiée |
YSI | 5:0f5ad06f23c0 | 42 | * @note init period 20ms and duty cycle 0% |
YSI | 4:22942b7e1635 | 43 | * @param pin Pin à connecter |
YSI | 4:22942b7e1635 | 44 | */ |
YSI | 0:0e01d184dbab | 45 | PwmOutAllPin(PinName pin); |
YSI | 4:22942b7e1635 | 46 | /** Fixe le rapport cyclique au pourcentage (float) spécifié |
YSI | 4:22942b7e1635 | 47 | * |
YSI | 4:22942b7e1635 | 48 | * @param value Une valeure floating-point représentant le rapport cyclique, |
YSI | 4:22942b7e1635 | 49 | * spécifié sous la forme d'un pourcentage. La valeur doit être comprise entre |
YSI | 4:22942b7e1635 | 50 | * 0.0f (correspondant à 0%) et 1.0f (correspondant à 100%). |
YSI | 4:22942b7e1635 | 51 | * Les valeurs exterieures à cette plage sont saturées à 0.0f ou 1.0f. |
YSI | 4:22942b7e1635 | 52 | */ |
YSI | 0:0e01d184dbab | 53 | void write(float value); |
YSI | 4:22942b7e1635 | 54 | /** Retourne la valeur courante du rapport cyclique de la sortie, mesurée sous la forme d'un pourcentage (float) |
YSI | 4:22942b7e1635 | 55 | * |
YSI | 4:22942b7e1635 | 56 | * @returns |
YSI | 4:22942b7e1635 | 57 | * Une valeur floating-point représentant la valeur courante du rapport cyclique qui est sur la pin de sortie, |
YSI | 4:22942b7e1635 | 58 | * mesurée sous la forme d'un pourcentage. La valeur doit être comprise entre |
YSI | 4:22942b7e1635 | 59 | * 0.0f (correspondant à 0%) et 1.0f (correspondant à 100%). |
YSI | 4:22942b7e1635 | 60 | */ |
YSI | 0:0e01d184dbab | 61 | float read(void); |
YSI | 4:22942b7e1635 | 62 | /** Fixe la période du PWM, spécifié en secondes (float), garde le même rapport cyclique. |
YSI | 4:22942b7e1635 | 63 | * |
YSI | 4:22942b7e1635 | 64 | * @note |
YSI | 4:22942b7e1635 | 65 | * La résolution est en microsecondes mais les périodes inférieure à 100µs sont imprécises. |
YSI | 4:22942b7e1635 | 66 | */ |
YSI | 0:0e01d184dbab | 67 | void period(float seconds); |
YSI | 4:22942b7e1635 | 68 | /** Fixe la période du PWM, spécifié en millisecondes (int), garde le même rapport cyclique. |
YSI | 4:22942b7e1635 | 69 | */ |
YSI | 0:0e01d184dbab | 70 | void period_ms(int ms); |
YSI | 4:22942b7e1635 | 71 | /** Fixe la période du PWM, spécifié en microsecondes (int), garde le même rapport cyclique. |
YSI | 4:22942b7e1635 | 72 | */ |
YSI | 0:0e01d184dbab | 73 | void period_us(int us); |
YSI | 4:22942b7e1635 | 74 | /** Fixe la largeur d'impulsion du PWM, spécifié en secondes (float), garde la même période. |
YSI | 4:22942b7e1635 | 75 | */ |
YSI | 0:0e01d184dbab | 76 | void pulsewidth(float seconds); |
YSI | 4:22942b7e1635 | 77 | /** Fixe la largeur d'impulsion du PWM, spécifié en millisecondes (int), garde la même période. |
YSI | 4:22942b7e1635 | 78 | */ |
YSI | 0:0e01d184dbab | 79 | void pulsewidth_ms(int ms); |
YSI | 4:22942b7e1635 | 80 | /** Fixe la largeur d'impulsion du PWM, spécifié en microsecondes (int), garde la même période. |
YSI | 4:22942b7e1635 | 81 | */ |
YSI | 0:0e01d184dbab | 82 | void pulsewidth_us(int us); |
YSI | 4:22942b7e1635 | 83 | /** raccourci pour write() |
YSI | 4:22942b7e1635 | 84 | */ |
YSI | 0:0e01d184dbab | 85 | PwmOutAllPin& operator= (float value); |
YSI | 4:22942b7e1635 | 86 | /** raccourci pour effectuer des opperations mathématique avec write() |
YSI | 4:22942b7e1635 | 87 | */ |
YSI | 0:0e01d184dbab | 88 | PwmOutAllPin& operator= (PwmOutAllPin& rhs); |
YSI | 4:22942b7e1635 | 89 | /** raccourci pour read() |
YSI | 4:22942b7e1635 | 90 | */ |
YSI | 0:0e01d184dbab | 91 | operator float(); |
YSI | 0:0e01d184dbab | 92 | |
YSI | 0:0e01d184dbab | 93 | protected: |
YSI | 0:0e01d184dbab | 94 | DigitalOut PwmOutPin; |
YSI | 0:0e01d184dbab | 95 | Timeout SwitchPin; |
YSI | 1:8067d51d66bd | 96 | Ticker TickerPeriod; |
YSI | 0:0e01d184dbab | 97 | |
YSI | 2:4673fac2ae7f | 98 | float Pwm_Duty_Cycle; |
YSI | 1:8067d51d66bd | 99 | int Pwm_period_us; |
YSI | 1:8067d51d66bd | 100 | int TimeDown; |
YSI | 1:8067d51d66bd | 101 | |
YSI | 0:0e01d184dbab | 102 | void DigitalUp(void); |
YSI | 0:0e01d184dbab | 103 | void DigitalDown(void); |
YSI | 0:0e01d184dbab | 104 | void UsePwm(void); |
YSI | 0:0e01d184dbab | 105 | }; |
YSI | 0:0e01d184dbab | 106 | |
YSI | 0:0e01d184dbab | 107 | #endif |