lib_PwmOutAllPin permet de créer des PwmOut sur toutes les DigitalOut du Mbed. YSI
lib_PwmOutAllPin.h@4:22942b7e1635, 2016-05-04 (annotated)
- Committer:
- YSI
- Date:
- Wed May 04 10:54:33 2016 +0000
- Revision:
- 4:22942b7e1635
- Parent:
- 3:1d1669e8c9b1
- Child:
- 5:0f5ad06f23c0
Up Doc
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
YSI | 3:1d1669e8c9b1 | 1 | /** Lib PwmOutAllPin |
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 | 0:0e01d184dbab | 36 | |
YSI | 0:0e01d184dbab | 37 | class PwmOutAllPin : public Timeout |
YSI | 0:0e01d184dbab | 38 | { |
YSI | 0:0e01d184dbab | 39 | public: |
YSI | 4:22942b7e1635 | 40 | /** Crée un PwmOutAllPin connecté à la pin spécifiée |
YSI | 4:22942b7e1635 | 41 | * |
YSI | 4:22942b7e1635 | 42 | * @param pin Pin à connecter |
YSI | 4:22942b7e1635 | 43 | */ |
YSI | 0:0e01d184dbab | 44 | PwmOutAllPin(PinName pin); |
YSI | 4:22942b7e1635 | 45 | /** Fixe le rapport cyclique au pourcentage (float) spécifié |
YSI | 4:22942b7e1635 | 46 | * |
YSI | 4:22942b7e1635 | 47 | * @param value Une valeure floating-point représentant le rapport cyclique, |
YSI | 4:22942b7e1635 | 48 | * spécifié sous la forme d'un pourcentage. La valeur doit être comprise entre |
YSI | 4:22942b7e1635 | 49 | * 0.0f (correspondant à 0%) et 1.0f (correspondant à 100%). |
YSI | 4:22942b7e1635 | 50 | * Les valeurs exterieures à cette plage sont saturées à 0.0f ou 1.0f. |
YSI | 4:22942b7e1635 | 51 | */ |
YSI | 0:0e01d184dbab | 52 | void write(float value); |
YSI | 4:22942b7e1635 | 53 | /** Retourne la valeur courante du rapport cyclique de la sortie, mesurée sous la forme d'un pourcentage (float) |
YSI | 4:22942b7e1635 | 54 | * |
YSI | 4:22942b7e1635 | 55 | * @returns |
YSI | 4:22942b7e1635 | 56 | * Une valeur floating-point représentant la valeur courante du rapport cyclique qui est sur la pin de sortie, |
YSI | 4:22942b7e1635 | 57 | * mesurée sous la forme d'un pourcentage. La valeur doit être comprise entre |
YSI | 4:22942b7e1635 | 58 | * 0.0f (correspondant à 0%) et 1.0f (correspondant à 100%). |
YSI | 4:22942b7e1635 | 59 | */ |
YSI | 0:0e01d184dbab | 60 | float read(void); |
YSI | 4:22942b7e1635 | 61 | /** Fixe la période du PWM, spécifié en secondes (float), garde le même rapport cyclique. |
YSI | 4:22942b7e1635 | 62 | * |
YSI | 4:22942b7e1635 | 63 | * @note |
YSI | 4:22942b7e1635 | 64 | * La résolution est en microsecondes mais les périodes inférieure à 100µs sont imprécises. |
YSI | 4:22942b7e1635 | 65 | */ |
YSI | 0:0e01d184dbab | 66 | void period(float seconds); |
YSI | 4:22942b7e1635 | 67 | /** Fixe la période du PWM, spécifié en millisecondes (int), garde le même rapport cyclique. |
YSI | 4:22942b7e1635 | 68 | */ |
YSI | 0:0e01d184dbab | 69 | void period_ms(int ms); |
YSI | 4:22942b7e1635 | 70 | /** Fixe la période du PWM, spécifié en microsecondes (int), garde le même rapport cyclique. |
YSI | 4:22942b7e1635 | 71 | */ |
YSI | 0:0e01d184dbab | 72 | void period_us(int us); |
YSI | 4:22942b7e1635 | 73 | /** Fixe la largeur d'impulsion du PWM, spécifié en secondes (float), garde la même période. |
YSI | 4:22942b7e1635 | 74 | */ |
YSI | 0:0e01d184dbab | 75 | void pulsewidth(float seconds); |
YSI | 4:22942b7e1635 | 76 | /** Fixe la largeur d'impulsion du PWM, spécifié en millisecondes (int), garde la même période. |
YSI | 4:22942b7e1635 | 77 | */ |
YSI | 0:0e01d184dbab | 78 | void pulsewidth_ms(int ms); |
YSI | 4:22942b7e1635 | 79 | /** Fixe la largeur d'impulsion du PWM, spécifié en microsecondes (int), garde la même période. |
YSI | 4:22942b7e1635 | 80 | */ |
YSI | 0:0e01d184dbab | 81 | void pulsewidth_us(int us); |
YSI | 4:22942b7e1635 | 82 | /** raccourci pour write() |
YSI | 4:22942b7e1635 | 83 | */ |
YSI | 0:0e01d184dbab | 84 | PwmOutAllPin& operator= (float value); |
YSI | 4:22942b7e1635 | 85 | /** raccourci pour effectuer des opperations mathématique avec write() |
YSI | 4:22942b7e1635 | 86 | */ |
YSI | 0:0e01d184dbab | 87 | PwmOutAllPin& operator= (PwmOutAllPin& rhs); |
YSI | 4:22942b7e1635 | 88 | /** raccourci pour read() |
YSI | 4:22942b7e1635 | 89 | */ |
YSI | 0:0e01d184dbab | 90 | operator float(); |
YSI | 0:0e01d184dbab | 91 | |
YSI | 0:0e01d184dbab | 92 | protected: |
YSI | 0:0e01d184dbab | 93 | DigitalOut PwmOutPin; |
YSI | 0:0e01d184dbab | 94 | Timeout SwitchPin; |
YSI | 1:8067d51d66bd | 95 | Ticker TickerPeriod; |
YSI | 0:0e01d184dbab | 96 | |
YSI | 2:4673fac2ae7f | 97 | float Pwm_Duty_Cycle; |
YSI | 1:8067d51d66bd | 98 | int Pwm_period_us; |
YSI | 1:8067d51d66bd | 99 | int TimeDown; |
YSI | 1:8067d51d66bd | 100 | |
YSI | 0:0e01d184dbab | 101 | void DigitalUp(void); |
YSI | 0:0e01d184dbab | 102 | void DigitalDown(void); |
YSI | 0:0e01d184dbab | 103 | void UsePwm(void); |
YSI | 0:0e01d184dbab | 104 | }; |
YSI | 0:0e01d184dbab | 105 | |
YSI | 0:0e01d184dbab | 106 | #endif |