baseline build

Dependencies:   FastPWM mbed-os mbed

Committer:
jrhodes5150
Date:
Mon Jun 19 15:55:51 2017 +0000
Revision:
0:8a420ac6394e
initial build - baseline;

Who changed what in which revision?

UserRevisionLine numberNew 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