Bayley Wang
/
priustroller_3
temp repo
Fork of priustroller_2 by
inverter.cpp
- Committer:
- nki
- Date:
- 2015-03-04
- Revision:
- 6:99ee0ce47fb2
- Parent:
- 1:1f58bdcf2956
- Child:
- 7:76d6ceb23e0d
File content as of revision 6:99ee0ce47fb2:
#include "includes.h" #include "core.h" #include "sensors.h" Inverter::Inverter(PinName ph_a, PinName ph_b, PinName ph_c, PinName en, VoltageSensor *sense_bus, TempSensor *sense_t) { _en = new DigitalOut(en); Disable(); _pwm_a = new PwmOut(ph_a); _pwm_b = new PwmOut(ph_b); _pwm_c = new PwmOut(ph_c); _pwm_a->period_us(100); _pwm_b->period_us(100); _pwm_c->period_us(100); _sense_bus = sense_bus; _sense_t = sense_t; SetDtcA(0); SetDtcB(0); SetDtcC(0); TIM2->CR1 &= ~(TIM_CR1_CEN); TIM2->CR1 |= TIM_CR1_CMS; TIM2->CR1 |= TIM_CR1_CEN; UpdateVbus(); UpdateTemp(); Enable(); } void Inverter::SetDtcA(float dtc) { if (dtc < 0) dtc = 0.0f; if (dtc > 1.0f) dtc = 1.0f; *_pwm_a = dtcA = dtc; } void Inverter::SetDtcB(float dtc) { if (dtc < 0) dtc = 0.0f; if (dtc > 1.0f) dtc = 1.0f; *_pwm_b = dtcB = 1.0f - dtc; } void Inverter::SetDtcC(float dtc) { if (dtc < 0) dtc = 0.0f; if (dtc > 1.0f) dtc = 1.0f; *_pwm_c = dtcC = dtc; } void Inverter::Enable() { *_en = 0; } void Inverter::Disable() { *_en = 1; } float Inverter::UpdateVbus() { return v_bus = _sense_bus->GetVoltage(); } float Inverter::UpdateTemp() { return temp = _sense_t->GetTemp(); }