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++
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_ */
|