You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
1.7 KiB
C++
88 lines
1.7 KiB
C++
/*
|
|
* TriggerRS.cpp
|
|
*
|
|
* Author: Aleksey Gerasimenko
|
|
* gerasimenko.aleksey.n@gmail.com
|
|
*/
|
|
|
|
#include "SYSCTRL/TriggerRS.h"
|
|
|
|
namespace SYSCTRL
|
|
{
|
|
//CONSTRUCTOR
|
|
TriggerRS::TriggerRS():
|
|
SYSCTRL::TriggerBase()
|
|
//
|
|
{}//CONSTRUCTOR
|
|
|
|
#pragma CODE_SECTION("ramfuncs");
|
|
void TriggerRS::setSET(bool set)
|
|
{
|
|
m_trigger.bit.set = set;
|
|
//
|
|
}//
|
|
//
|
|
#pragma CODE_SECTION("ramfuncs");
|
|
void TriggerRS::setRESET(bool reset)
|
|
{
|
|
m_trigger.bit.reset = reset;
|
|
//
|
|
}//
|
|
//
|
|
#pragma CODE_SECTION("ramfuncs");
|
|
void TriggerRS::execute()
|
|
{
|
|
// Q(i) = (nR & (S | Q(i-1))) | (S & Q(i-1))
|
|
//
|
|
m_trigger.bit.out_privious = m_trigger.bit.out;
|
|
m_trigger.bit.out_shadow = (!m_trigger.bit.reset & (m_trigger.bit.set | m_trigger.bit.out_privious)) | (m_trigger.bit.set & m_trigger.bit.out_privious);
|
|
m_trigger.bit.out = m_trigger.bit.out_shadow;
|
|
m_trigger.bit.positive = !m_trigger.bit.out_privious & m_trigger.bit.out;
|
|
m_trigger.bit.negative = m_trigger.bit.out_privious & !m_trigger.bit.out;
|
|
//
|
|
}//
|
|
//
|
|
#pragma CODE_SECTION("ramfuncs");
|
|
void TriggerRS::clear()
|
|
{
|
|
m_trigger.all = 0;
|
|
//
|
|
}//
|
|
//
|
|
#pragma CODE_SECTION("ramfuncs");
|
|
bool TriggerRS::getOUT()
|
|
{
|
|
return m_trigger.bit.out;
|
|
//
|
|
}//
|
|
//
|
|
#pragma CODE_SECTION("ramfuncs");
|
|
bool TriggerRS::getPOSITIVE()
|
|
{
|
|
return m_trigger.bit.positive;
|
|
//
|
|
}//
|
|
//
|
|
#pragma CODE_SECTION("ramfuncs");
|
|
bool TriggerRS::getNEGATIVE()
|
|
{
|
|
return m_trigger.bit.negative;
|
|
//
|
|
}//
|
|
//
|
|
#pragma CODE_SECTION("ramfuncs");
|
|
bool TriggerRS::isPOSITIVE()
|
|
{
|
|
return m_trigger.bit.positive;
|
|
//
|
|
}//
|
|
//
|
|
#pragma CODE_SECTION("ramfuncs");
|
|
bool TriggerRS::isNEGATIVE()
|
|
{
|
|
return m_trigger.bit.negative;
|
|
//
|
|
}//
|
|
//
|
|
} /* namespace SYSCTRL */
|