46 lines
1.4 KiB
C++
46 lines
1.4 KiB
C++
|
|
/*!\file
|
|||
|
|
* \brief \todo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
|
*/
|
|||
|
|
/*
|
|||
|
|
* InverterSync.cpp
|
|||
|
|
*
|
|||
|
|
* Created on: 19 <EFBFBD><EFBFBD><EFBFBD>. 2019 <EFBFBD>.
|
|||
|
|
* Author: titov
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
#include "InverterSync.hh"
|
|||
|
|
|
|||
|
|
driver::InverterSync::InverterSync(peripheral::IPwm & u, peripheral::IPwm & v,
|
|||
|
|
peripheral::IPwm & w,
|
|||
|
|
driver::IDiscreteOutput & pulse) : Inverter( u, v, w, pulse ) {}
|
|||
|
|
|
|||
|
|
void driver::InverterSync::pwm( float Ta, float Tb, float Tc ) {
|
|||
|
|
|
|||
|
|
if( checkTime( Ta ) and checkTime( Tb ) and checkTime( Tc ) ) {
|
|||
|
|
|
|||
|
|
//core::CriticalSection cs_0;
|
|||
|
|
|
|||
|
|
phase_u.setThreshold( TxToTreshold( _Ta = Ta ) );
|
|||
|
|
phase_v.setThreshold( TxToTreshold( _Tb = Tb ) );
|
|||
|
|
phase_w.setThreshold( TxToTreshold( _Tc = Tc ) );
|
|||
|
|
|
|||
|
|
} else {
|
|||
|
|
phase_u.setThreshold( TxToTreshold( _Ta = 0 ) );
|
|||
|
|
phase_v.setThreshold( TxToTreshold( _Tb = 0 ) );
|
|||
|
|
phase_w.setThreshold( TxToTreshold( _Tc = 0 ) );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if( pulse_enable ) { // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
|||
|
|
|
|||
|
|
phase_u.enableOutput(); // <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD>
|
|||
|
|
phase_v.enableOutput(); // <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
|
phase_w.enableOutput();
|
|||
|
|
|
|||
|
|
pulse_enable = false; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
|
pulse_release = true; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|