Alex Pirciu
/
BFMC
a
include/Encoders/quadratureencoder.hpp@1:ceee5a608e7c, 2019-03-28 (annotated)
- Committer:
- alexpirciu
- Date:
- Thu Mar 28 07:44:42 2019 +0000
- Revision:
- 1:ceee5a608e7c
assa
Who changed what in which revision?
User | Revision | Line number | New 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 |