MotorControlModuleSDFM_TMS3.../Projects/EFC_Application/UMLibrary/driver/InverterSync.cpp

46 lines
1.4 KiB
C++

/*!\file
* \brief \todo Îïèñàíèå ôàéëà.
*/
/*
* InverterSync.cpp
*
* Created on: 19 èþí. 2019 ã.
* 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 ) { // Åñëè íåîáõîäèìî âêëþ÷èòü èìïóëüñû,
phase_u.enableOutput(); // òî âêëþ÷àåì èìïóëüñû, òàê êàê
phase_v.enableOutput(); // íîâàÿ ïðàâèëüíàÿ óñòàâêà óæå çàïèñàíà.
phase_w.enableOutput();
pulse_enable = false; // Îñòàâëÿåì ôëàã ÷òî íå íóæíî âêëþ÷àòü èìïóëüñû.
pulse_release = true; // Îñòàâëÿåì ôëàã ÷òî èìïóëüñû óæå âêëþ÷åíû.
}
}