First Last / Encoder

Dependents:   BMT-K9_encoder BMT-K9-Regelaar K9motoraansturing_copy EMGverwerking ... more

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?

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