/* * TriggerRegister.h * * Author: Aleksey Gerasimenko * gerasimenko.aleksey.n@gmail.com */ #include #include #include "SYSCTRL/SystemDefinitions.h" #ifndef SYSCTRL_TRIGGERREGISTER_H_ #define SYSCTRL_TRIGGERREGISTER_H_ namespace SYSCTRL { struct TriggerRegisterSignalBitFiled { uint16_t set:1; uint16_t reset:1; uint16_t quit:1; uint16_t negquit:1; uint16_t is_on:1; uint16_t is_off:1; uint16_t is_switched_on:1; uint16_t is_switched_off:1; uint16_t quit_privious:1; // };// union TriggerRegisterStructure { uint16_t all; Register16BitField bit; TriggerRegisterSignalBitFiled signal; TriggerRegisterStructure(): all(uint16_t(0x28)) {} TriggerRegisterStructure(uint16_t val): all(val) {} };//TriggerRegisterUnion class TriggerRegister { public: TriggerRegister(); static void clear(TriggerRegisterStructure& trigger); static void set(TriggerRegisterStructure& trigger); static void execute_set_priority(TriggerRegisterStructure& trigger); static void execute_reset_priority(TriggerRegisterStructure& trigger); static void execute_rs(TriggerRegisterStructure& trigger); static void setSet(TriggerRegisterStructure& trigger, bool ref); static void setReset(TriggerRegisterStructure& trigger, bool ref); private: static inline void _signal_constructor(TriggerRegisterStructure& trigger); }; } /* namespace SYSCTRL */ #endif /* SYSCTRL_TRIGGERREGISTER_H_ */