Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: BMT-K9_encoder BMT-K9-Regelaar K9motoraansturing_copy EMGverwerking ... more
encoder.h.orig@5:04c4a90c7a0a, 2014-09-29 (annotated)
- Committer:
- vsluiter
- Date:
- Mon Sep 29 20:43:45 2014 +0000
- Revision:
- 5:04c4a90c7a0a
- Parent:
- 4:69be34f39c9f
Fixed coding errors (; and redefinition of default value)
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| vsluiter | 4:69be34f39c9f | 1 | #ifndef _ENCODER_H_ | 
| vsluiter | 4:69be34f39c9f | 2 | #define _ENCODER_H_ | 
| vsluiter | 4:69be34f39c9f | 3 | |
| vsluiter | 4:69be34f39c9f | 4 | #include "mbed.h" | 
| vsluiter | 4:69be34f39c9f | 5 | /** Encoder class. | 
| vsluiter | 4:69be34f39c9f | 6 | * Used to read out incremental position encoder. Decodes position in X2 configuration. | 
| vsluiter | 4:69be34f39c9f | 7 | * | 
| vsluiter | 4:69be34f39c9f | 8 | * Example: | 
| vsluiter | 4:69be34f39c9f | 9 | * @code | 
| vsluiter | 4:69be34f39c9f | 10 | * #include "mbed.h" | 
| vsluiter | 4:69be34f39c9f | 11 | * #include "Encoder.h" | 
| vsluiter | 4:69be34f39c9f | 12 | * | 
| vsluiter | 4:69be34f39c9f | 13 | * Encoder motor1(PTD0,PTC9); | 
| vsluiter | 4:69be34f39c9f | 14 | * Serial pc(USBTX,USBRX); | 
| vsluiter | 4:69be34f39c9f | 15 | * pc.baud(115200); | 
| vsluiter | 4:69be34f39c9f | 16 | * while(1) { | 
| vsluiter | 4:69be34f39c9f | 17 | * wait(0.2); | 
| vsluiter | 4:69be34f39c9f | 18 | * pc.printf("pos: %d, speed %f \r\n",motor1.getPosition(), motor1.getSpeed()); | 
| vsluiter | 4:69be34f39c9f | 19 | * } | 
| vsluiter | 4:69be34f39c9f | 20 | * @endcode | 
| vsluiter | 4:69be34f39c9f | 21 | */ | 
| vsluiter | 4:69be34f39c9f | 22 | class Encoder | 
| vsluiter | 4:69be34f39c9f | 23 | { | 
| vsluiter | 4:69be34f39c9f | 24 | public: | 
| vsluiter | 4:69be34f39c9f | 25 | /** Create Encoder instance | 
| vsluiter | 4:69be34f39c9f | 26 | @param int_a Pin to be used as InterruptIn! Be careful, as not all pins on all platforms may be used as InterruptIn. | 
| vsluiter | 4:69be34f39c9f | 27 | @param int_b second encoder pin, used as DigitalIn. Can be any DigitalIn pin, not necessarily on InterruptIn location | 
| vsluiter | 4:69be34f39c9f | 28 | */ | 
| vsluiter | 4:69be34f39c9f | 29 | Encoder(PinName pos_a, PinName pos_b); | 
| vsluiter | 4:69be34f39c9f | 30 | /** Request position | 
| vsluiter | 4:69be34f39c9f | 31 | @returns current position in encoder counts | 
| vsluiter | 4:69be34f39c9f | 32 | */ | 
| vsluiter | 4:69be34f39c9f | 33 | int32_t getPosition(){return m_position;} | 
| vsluiter | 4:69be34f39c9f | 34 | /** Overwrite position | 
| vsluiter | 4:69be34f39c9f | 35 | @param pos position to be written | 
| vsluiter | 4:69be34f39c9f | 36 | */ | 
| vsluiter | 4:69be34f39c9f | 37 | void setPosition(int32_t pos){m_position = pos;} | 
| vsluiter | 4:69be34f39c9f | 38 | /** Request speed | 
| vsluiter | 4:69be34f39c9f | 39 | @returns current speed | 
| vsluiter | 4:69be34f39c9f | 40 | */ | 
| vsluiter | 4:69be34f39c9f | 41 | float getSpeed(){return m_speed;} | 
| vsluiter | 4:69be34f39c9f | 42 | private: | 
| vsluiter | 4:69be34f39c9f | 43 | void encoderFalling(void); | 
| vsluiter | 4:69be34f39c9f | 44 | void encoderRising(void); | 
| vsluiter | 4:69be34f39c9f | 45 | Timer EncoderTimer; | 
| vsluiter | 4:69be34f39c9f | 46 | //Timeout EncoderTimeout; | 
| vsluiter | 4:69be34f39c9f | 47 | InterruptIn pin_a; | 
| vsluiter | 4:69be34f39c9f | 48 | DigitalIn pin_b; | 
| vsluiter | 4:69be34f39c9f | 49 | int32_t m_position; | 
| vsluiter | 4:69be34f39c9f | 50 | float m_speed; | 
| vsluiter | 4:69be34f39c9f | 51 | void timeouthandler(void); | 
| vsluiter | 4:69be34f39c9f | 52 | bool zero_speed; | 
| vsluiter | 4:69be34f39c9f | 53 | }; | 
| vsluiter | 4:69be34f39c9f | 54 | |
| vsluiter | 4:69be34f39c9f | 55 | |
| vsluiter | 4:69be34f39c9f | 56 | #endif //_ENCODER_H_ |