a

Dependencies:   mbed mbed-rtos

Committer:
alexpirciu
Date:
Thu Mar 28 07:44:42 2019 +0000
Revision:
1:ceee5a608e7c
assa

Who changed what in which revision?

UserRevisionLine numberNew contents of line
alexpirciu 1:ceee5a608e7c 1 /**
alexpirciu 1:ceee5a608e7c 2 * @file quadratureencoder.hpp
alexpirciu 1:ceee5a608e7c 3 * @author RBRO/PJ-IU
alexpirciu 1:ceee5a608e7c 4 * @brief
alexpirciu 1:ceee5a608e7c 5 * @version 0.1
alexpirciu 1:ceee5a608e7c 6 * @date 2018-10-23
alexpirciu 1:ceee5a608e7c 7 *
alexpirciu 1:ceee5a608e7c 8 * @copyright Copyright (c) 2018
alexpirciu 1:ceee5a608e7c 9 *
alexpirciu 1:ceee5a608e7c 10 */
alexpirciu 1:ceee5a608e7c 11
alexpirciu 1:ceee5a608e7c 12 #ifndef Quadrature_ENCODER_HPP
alexpirciu 1:ceee5a608e7c 13 #define Quadrature_ENCODER_HPP
alexpirciu 1:ceee5a608e7c 14
alexpirciu 1:ceee5a608e7c 15 #include <mbed.h>
alexpirciu 1:ceee5a608e7c 16
alexpirciu 1:ceee5a608e7c 17 namespace encoders{
alexpirciu 1:ceee5a608e7c 18 /**
alexpirciu 1:ceee5a608e7c 19 * @brief It an interface for accessing the encoder position. It can be used to get and to reset the position of the encoder.
alexpirciu 1:ceee5a608e7c 20 *
alexpirciu 1:ceee5a608e7c 21 */
alexpirciu 1:ceee5a608e7c 22 class CQuadratureEncoder_TIMX{
alexpirciu 1:ceee5a608e7c 23 public:
alexpirciu 1:ceee5a608e7c 24 virtual int16_t getCount() = 0;
alexpirciu 1:ceee5a608e7c 25 virtual void reset() = 0;
alexpirciu 1:ceee5a608e7c 26 };
alexpirciu 1:ceee5a608e7c 27
alexpirciu 1:ceee5a608e7c 28 /**
alexpirciu 1:ceee5a608e7c 29 * @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.
alexpirciu 1:ceee5a608e7c 30 *
alexpirciu 1:ceee5a608e7c 31 */
alexpirciu 1:ceee5a608e7c 32 class CQuadratureEncoder_TIM4:public CQuadratureEncoder_TIMX{
alexpirciu 1:ceee5a608e7c 33 /**
alexpirciu 1:ceee5a608e7c 34 * @brief It uses to destroy the singleton class.
alexpirciu 1:ceee5a608e7c 35 *
alexpirciu 1:ceee5a608e7c 36 */
alexpirciu 1:ceee5a608e7c 37 class CQuadratureEncoder_TIM4_Destroyer{
alexpirciu 1:ceee5a608e7c 38 public:
alexpirciu 1:ceee5a608e7c 39 CQuadratureEncoder_TIM4_Destroyer(){}
alexpirciu 1:ceee5a608e7c 40 ~CQuadratureEncoder_TIM4_Destroyer();
alexpirciu 1:ceee5a608e7c 41 void SetSingleton(CQuadratureEncoder_TIM4* s);
alexpirciu 1:ceee5a608e7c 42 private:
alexpirciu 1:ceee5a608e7c 43 CQuadratureEncoder_TIM4* m_singleton;
alexpirciu 1:ceee5a608e7c 44 };
alexpirciu 1:ceee5a608e7c 45
alexpirciu 1:ceee5a608e7c 46 public:
alexpirciu 1:ceee5a608e7c 47 static CQuadratureEncoder_TIM4 *Instance();
alexpirciu 1:ceee5a608e7c 48 int16_t getCount();
alexpirciu 1:ceee5a608e7c 49 void reset();
alexpirciu 1:ceee5a608e7c 50 virtual ~CQuadratureEncoder_TIM4() {}
alexpirciu 1:ceee5a608e7c 51 protected:
alexpirciu 1:ceee5a608e7c 52 CQuadratureEncoder_TIM4() {}
alexpirciu 1:ceee5a608e7c 53
alexpirciu 1:ceee5a608e7c 54 private:
alexpirciu 1:ceee5a608e7c 55 void initialize();
alexpirciu 1:ceee5a608e7c 56 static CQuadratureEncoder_TIM4* m_instance;
alexpirciu 1:ceee5a608e7c 57 static CQuadratureEncoder_TIM4_Destroyer m_destroyer;
alexpirciu 1:ceee5a608e7c 58 };
alexpirciu 1:ceee5a608e7c 59
alexpirciu 1:ceee5a608e7c 60 };// namepsace drivers
alexpirciu 1:ceee5a608e7c 61
alexpirciu 1:ceee5a608e7c 62
alexpirciu 1:ceee5a608e7c 63 #endif