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.

61 lines
1.1 KiB
C++

/*
* TriggerBase.h
*
* Author: Aleksey Gerasimenko
* gerasimenko.aleksey.n@gmail.com
*/
#include <math.h>
#include <stdint.h>
#ifndef SYSCTRL_TRIGGERBASE_H_
#define SYSCTRL_TRIGGERBASE_H_
namespace SYSCTRL
{
struct TriggerBaseBitField
{
uint16_t out:1;
uint16_t out_shadow:1;
uint16_t out_privious:1;
uint16_t set:1;
uint16_t reset:1;
uint16_t positive:1;
uint16_t negative:1;
};//TriggerBaseBitField
union TriggerBaseRegister
{
uint16_t all;
TriggerBaseBitField bit;
TriggerBaseRegister():
all(0)
{}
};//TriggerBaseRegister
class TriggerBase
{
protected:
TriggerBaseRegister m_trigger;
public:
TriggerBase();
public:
virtual void setSET(bool set) = 0;
virtual void setRESET(bool reset) = 0;
virtual void execute() = 0;
virtual void clear() = 0;
virtual bool getOUT() = 0;
virtual bool getPOSITIVE() = 0;
virtual bool getNEGATIVE() = 0;
virtual bool isPOSITIVE() = 0;
virtual bool isNEGATIVE() = 0;
};
} /* namespace SYSCTRL */
#endif /* SYSCTRL_TRIGGERBASE_H_ */