System Management code
Dependencies: mbed CANBuffer Watchdog MODSERIAL mbed-rtos xbeeRelay IAP
Fork of SystemManagement by
DC_DC.h
00001 #ifndef _FILE_DC_DC_H 00002 #define _FILE_DC_DC_H 00003 00004 #include "mbed.h" 00005 #include "FanPump.h" 00006 00007 enum Channel_T { 00008 FAN1 = 0, 00009 FAN2 = 1, 00010 PUMP1 = 2, 00011 PUMP2 = 3, 00012 }; 00013 00014 enum Status_Bits_T { 00015 CONV_ON = 1<<0, 00016 SET_ON = 1<<1, 00017 POWER_UP = 1<<2, 00018 POWER_DOWN = 1<<3, 00019 OVER_CURRENT = 1<<4, 00020 SENSOR_FAULT = 1<<5, 00021 }; 00022 00023 class DC_DC{ 00024 public: 00025 DC_DC(PinName _dcdcPin, PinName _dcdcCurrent, PinName _fan1, PinName _fan2, PinName _pump1, PinName _pump2, float period, float slew, unsigned int size=50); 00026 void setup(float* onThreshold, float* overCurrent, float* startDelay, float* stopDelay); 00027 bool size(unsigned int size); 00028 float getCurrent() { return current; } 00029 void set(bool on); 00030 void setPwm(enum Channel_T chan, float duty); 00031 float readPwm(enum Channel_T chan); 00032 /* 00033 char status = 00034 bit0 - 1 = DC-DC converter is actually on 00035 bit1 - 1 = DC-DC converter is set to on 00036 bit2 - 1 = DC-DC Startup, its use is currently blocked until ready 00037 bit3 - 1 = DC-DC Power-down, its use is currently blocked until ready 00038 bit4 - 1 = DC-DC over current (drawing more current than allowed according to sensor) 00039 bit5 - 1 = DC-DC current sensor out of range (broken) 00040 */ 00041 char getStatus() { return status; } 00042 bool hasCritError() { return critError; } // An error exists according to status above 00043 void sample(); // Attach this function in a 10ms RTOS timer 00044 00045 private: 00046 00047 Timer startTimer; 00048 Timer stopTimer; 00049 volatile bool isControlPinOn; 00050 DigitalOut dcdcControl; 00051 AnalogIn dcdcCurrent; 00052 00053 float currentOffset; 00054 float* filterBuff; 00055 int buffTracker; 00056 unsigned int _size; 00057 00058 void updateCurrent(); 00059 volatile float current; 00060 volatile char status; 00061 volatile bool critError; 00062 00063 FanPump fan1; 00064 FanPump fan2; 00065 FanPump pump1; 00066 FanPump pump2; 00067 00068 float* onThreshold; 00069 float* overCurrent; 00070 float* startDelay; 00071 float* stopDelay; 00072 }; 00073 00074 #endif
Generated on Fri Jul 15 2022 06:07:18 by
1.7.2
