Alex Pirciu
/
BFMC
a
include/Encoders/quadratureencoder.hpp
- Committer:
- alexpirciu
- Date:
- 2019-03-28
- Revision:
- 1:ceee5a608e7c
File content as of revision 1:ceee5a608e7c:
/** * @file quadratureencoder.hpp * @author RBRO/PJ-IU * @brief * @version 0.1 * @date 2018-10-23 * * @copyright Copyright (c) 2018 * */ #ifndef Quadrature_ENCODER_HPP #define Quadrature_ENCODER_HPP #include <mbed.h> namespace encoders{ /** * @brief It an interface for accessing the encoder position. It can be used to get and to reset the position of the encoder. * */ class CQuadratureEncoder_TIMX{ public: virtual int16_t getCount() = 0; virtual void reset() = 0; }; /** * @brief It's a singleton class for receiving and decoding the Quadrature signal by using the timer TIM4. It can get the direction of the rotation. * */ class CQuadratureEncoder_TIM4:public CQuadratureEncoder_TIMX{ /** * @brief It uses to destroy the singleton class. * */ class CQuadratureEncoder_TIM4_Destroyer{ public: CQuadratureEncoder_TIM4_Destroyer(){} ~CQuadratureEncoder_TIM4_Destroyer(); void SetSingleton(CQuadratureEncoder_TIM4* s); private: CQuadratureEncoder_TIM4* m_singleton; }; public: static CQuadratureEncoder_TIM4 *Instance(); int16_t getCount(); void reset(); virtual ~CQuadratureEncoder_TIM4() {} protected: CQuadratureEncoder_TIM4() {} private: void initialize(); static CQuadratureEncoder_TIM4* m_instance; static CQuadratureEncoder_TIM4_Destroyer m_destroyer; }; };// namepsace drivers #endif