Mirjana Radosavljevic
/
BMS_Master-Test
BMS Master HW test - 20/21
PwmIn.h@1:26659a89d49e, 2021-06-27 (annotated)
- Committer:
- minamax
- Date:
- Sun Jun 27 10:07:04 2021 +0000
- Revision:
- 1:26659a89d49e
- Parent:
- 0:4fedfbc3c6b8
Done;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
minamax | 0:4fedfbc3c6b8 | 1 | #ifndef MBED_PWMIN_H |
minamax | 0:4fedfbc3c6b8 | 2 | #define MBED_PWMIN_H |
minamax | 0:4fedfbc3c6b8 | 3 | |
minamax | 0:4fedfbc3c6b8 | 4 | #include "mbed.h" |
minamax | 0:4fedfbc3c6b8 | 5 | |
minamax | 0:4fedfbc3c6b8 | 6 | /** PwmIn class to read PWM inputs |
minamax | 0:4fedfbc3c6b8 | 7 | * |
minamax | 0:4fedfbc3c6b8 | 8 | * Uses InterruptIn to measure the changes on the input |
minamax | 0:4fedfbc3c6b8 | 9 | * and record the time they occur |
minamax | 0:4fedfbc3c6b8 | 10 | * |
minamax | 0:4fedfbc3c6b8 | 11 | * @note uses InterruptIn, so not available on p19/p20 |
minamax | 0:4fedfbc3c6b8 | 12 | */ |
minamax | 0:4fedfbc3c6b8 | 13 | class PwmIn { |
minamax | 0:4fedfbc3c6b8 | 14 | public: |
minamax | 0:4fedfbc3c6b8 | 15 | /** Create a PwmIn |
minamax | 0:4fedfbc3c6b8 | 16 | * |
minamax | 0:4fedfbc3c6b8 | 17 | * @param p The pwm input pin (must support InterruptIn) |
minamax | 0:4fedfbc3c6b8 | 18 | */ |
minamax | 0:4fedfbc3c6b8 | 19 | PwmIn(PinName p); |
minamax | 0:4fedfbc3c6b8 | 20 | |
minamax | 0:4fedfbc3c6b8 | 21 | /** Read the current period |
minamax | 0:4fedfbc3c6b8 | 22 | * |
minamax | 0:4fedfbc3c6b8 | 23 | * @returns the period in seconds |
minamax | 0:4fedfbc3c6b8 | 24 | */ |
minamax | 0:4fedfbc3c6b8 | 25 | float period(); |
minamax | 0:4fedfbc3c6b8 | 26 | |
minamax | 0:4fedfbc3c6b8 | 27 | /** Read the current pulsewidth |
minamax | 0:4fedfbc3c6b8 | 28 | * |
minamax | 0:4fedfbc3c6b8 | 29 | * @returns the pulsewidth in seconds |
minamax | 0:4fedfbc3c6b8 | 30 | */ |
minamax | 0:4fedfbc3c6b8 | 31 | float pulsewidth(); |
minamax | 0:4fedfbc3c6b8 | 32 | |
minamax | 0:4fedfbc3c6b8 | 33 | /** Read the current dutycycle |
minamax | 0:4fedfbc3c6b8 | 34 | * |
minamax | 0:4fedfbc3c6b8 | 35 | * @returns the dutycycle as a percentage, represented between 0.0-1.0 |
minamax | 0:4fedfbc3c6b8 | 36 | */ |
minamax | 0:4fedfbc3c6b8 | 37 | float dutycycle(); |
minamax | 0:4fedfbc3c6b8 | 38 | |
minamax | 0:4fedfbc3c6b8 | 39 | protected: |
minamax | 0:4fedfbc3c6b8 | 40 | void rise(); |
minamax | 0:4fedfbc3c6b8 | 41 | void fall(); |
minamax | 0:4fedfbc3c6b8 | 42 | |
minamax | 0:4fedfbc3c6b8 | 43 | InterruptIn _p; |
minamax | 0:4fedfbc3c6b8 | 44 | Timer _t; |
minamax | 0:4fedfbc3c6b8 | 45 | float _pulsewidth, _period; |
minamax | 0:4fedfbc3c6b8 | 46 | }; |
minamax | 0:4fedfbc3c6b8 | 47 | |
minamax | 0:4fedfbc3c6b8 | 48 | #endif |