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_ |