![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
baseline build
Dependencies: FastPWM mbed-os mbed
IOControl.h@0:8a420ac6394e, 2017-06-19 (annotated)
- Committer:
- jrhodes5150
- Date:
- Mon Jun 19 15:55:51 2017 +0000
- Revision:
- 0:8a420ac6394e
initial build - baseline;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jrhodes5150 | 0:8a420ac6394e | 1 | #ifndef __IOCONTROL_H__ |
jrhodes5150 | 0:8a420ac6394e | 2 | #define __IOCONTROL_H__ |
jrhodes5150 | 0:8a420ac6394e | 3 | |
jrhodes5150 | 0:8a420ac6394e | 4 | #include "mbed.h" |
jrhodes5150 | 0:8a420ac6394e | 5 | #include "FullBridgeDriver.h" |
jrhodes5150 | 0:8a420ac6394e | 6 | #include "Mutex.h" |
jrhodes5150 | 0:8a420ac6394e | 7 | #include "DebouncedIn.h" |
jrhodes5150 | 0:8a420ac6394e | 8 | |
jrhodes5150 | 0:8a420ac6394e | 9 | const double MAX_TARGET_POWER = 200; |
jrhodes5150 | 0:8a420ac6394e | 10 | const double MAX_OUTPUT_VOLTAGE = 200; |
jrhodes5150 | 0:8a420ac6394e | 11 | const double VOLTAGE_LIMIT = 160; |
jrhodes5150 | 0:8a420ac6394e | 12 | const double HV_MAX = 1; |
jrhodes5150 | 0:8a420ac6394e | 13 | const uint16_t DAC_LIM_MAX = 2048; // Max value of 10 bit DAC |
jrhodes5150 | 0:8a420ac6394e | 14 | const uint16_t DAC_VOLTAGE_MAX = 3.3; // Max Voltage output |
jrhodes5150 | 0:8a420ac6394e | 15 | |
jrhodes5150 | 0:8a420ac6394e | 16 | |
jrhodes5150 | 0:8a420ac6394e | 17 | class IOControl |
jrhodes5150 | 0:8a420ac6394e | 18 | { |
jrhodes5150 | 0:8a420ac6394e | 19 | public: |
jrhodes5150 | 0:8a420ac6394e | 20 | IOControl(void); |
jrhodes5150 | 0:8a420ac6394e | 21 | |
jrhodes5150 | 0:8a420ac6394e | 22 | bool isActivateSwitchOn(void); |
jrhodes5150 | 0:8a420ac6394e | 23 | void Activate(void); |
jrhodes5150 | 0:8a420ac6394e | 24 | void Deactivate(void); |
jrhodes5150 | 0:8a420ac6394e | 25 | bool hasFalling(void); |
jrhodes5150 | 0:8a420ac6394e | 26 | double GetOutputVoltage(void); |
jrhodes5150 | 0:8a420ac6394e | 27 | void SetOutputVoltage(double outputVoltage); |
jrhodes5150 | 0:8a420ac6394e | 28 | void ChangeOutputVoltage(double outputVoltage); |
jrhodes5150 | 0:8a420ac6394e | 29 | double GetActualPWMFrequency(void); |
jrhodes5150 | 0:8a420ac6394e | 30 | void SetPWMFrequency(double freq); |
jrhodes5150 | 0:8a420ac6394e | 31 | void SetLimits(double voltageLim, double currentLim); |
jrhodes5150 | 0:8a420ac6394e | 32 | double GetHVControl(void); |
jrhodes5150 | 0:8a420ac6394e | 33 | void SetHVControl(double control); |
jrhodes5150 | 0:8a420ac6394e | 34 | void HVcalControl(double control); |
jrhodes5150 | 0:8a420ac6394e | 35 | private: |
jrhodes5150 | 0:8a420ac6394e | 36 | DigitalOut hvEn; |
jrhodes5150 | 0:8a420ac6394e | 37 | DigitalOut shutdown; |
jrhodes5150 | 0:8a420ac6394e | 38 | DebouncedIn activate; |
jrhodes5150 | 0:8a420ac6394e | 39 | DigitalIn hvFault; |
jrhodes5150 | 0:8a420ac6394e | 40 | AnalogOut hvControl; |
jrhodes5150 | 0:8a420ac6394e | 41 | |
jrhodes5150 | 0:8a420ac6394e | 42 | mutable rtos::Mutex mutex; |
jrhodes5150 | 0:8a420ac6394e | 43 | double requestedOutputVoltage; |
jrhodes5150 | 0:8a420ac6394e | 44 | |
jrhodes5150 | 0:8a420ac6394e | 45 | // PWM control |
jrhodes5150 | 0:8a420ac6394e | 46 | FullBridgeDriver PWM; |
jrhodes5150 | 0:8a420ac6394e | 47 | }; |
jrhodes5150 | 0:8a420ac6394e | 48 | #endif |
jrhodes5150 | 0:8a420ac6394e | 49 |