Committer:
daveTshave
Date:
Fri Nov 25 14:09:37 2011 +0000
Revision:
2:fa04a99dcdab
Parent:
1:8c1bace3af7b
Child:
3:bd08a59ee473

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
daveTshave 2:fa04a99dcdab 1 #ifndef counter_H
daveTshave 2:fa04a99dcdab 2 #define counter_H
daveTshave 2:fa04a99dcdab 3
daveTshave 2:fa04a99dcdab 4 /**
daveTshave 2:fa04a99dcdab 5 * Includes
daveTshave 2:fa04a99dcdab 6 */
daveTshave 2:fa04a99dcdab 7 #include "mbed.h"
daveTshave 2:fa04a99dcdab 8
daveTshave 2:fa04a99dcdab 9 /**
daveTshave 2:fa04a99dcdab 10 * Simple counter
daveTshave 2:fa04a99dcdab 11 */
daveTshave 2:fa04a99dcdab 12 class counter {
daveTshave 2:fa04a99dcdab 13
daveTshave 2:fa04a99dcdab 14 public:
daveTshave 2:fa04a99dcdab 15
daveTshave 2:fa04a99dcdab 16
daveTshave 2:fa04a99dcdab 17 /**
daveTshave 2:fa04a99dcdab 18 * Constructor.
daveTshave 2:fa04a99dcdab 19 *
daveTshave 2:fa04a99dcdab 20 * Attaches the encode function to the rise/fall edge of
daveTshave 2:fa04a99dcdab 21 * channels A.
daveTshave 2:fa04a99dcdab 22 *
daveTshave 2:fa04a99dcdab 23 * @param channelA mbed pin for counter input.
daveTshave 2:fa04a99dcdab 24 */
daveTshave 2:fa04a99dcdab 25 counter(PinName channelA);
daveTshave 2:fa04a99dcdab 26
daveTshave 2:fa04a99dcdab 27 /**
daveTshave 2:fa04a99dcdab 28 * Reset the encoder.
daveTshave 2:fa04a99dcdab 29 *
daveTshave 2:fa04a99dcdab 30 * Sets the pulses and revolutions count to zero.
daveTshave 2:fa04a99dcdab 31 */
daveTshave 2:fa04a99dcdab 32 void reset(void);
daveTshave 2:fa04a99dcdab 33
daveTshave 2:fa04a99dcdab 34 /**
daveTshave 2:fa04a99dcdab 35 * Read the number of pulses recorded by the encoder.
daveTshave 2:fa04a99dcdab 36 *
daveTshave 2:fa04a99dcdab 37 * @return Number of pulses which have occured.
daveTshave 2:fa04a99dcdab 38 */
daveTshave 2:fa04a99dcdab 39 int getPulses(void);
daveTshave 2:fa04a99dcdab 40
daveTshave 2:fa04a99dcdab 41 private:
daveTshave 2:fa04a99dcdab 42
daveTshave 2:fa04a99dcdab 43 /**
daveTshave 2:fa04a99dcdab 44 * Update the pulse count.
daveTshave 2:fa04a99dcdab 45 *
daveTshave 2:fa04a99dcdab 46 * Called on every rising edge of channels A.
daveTshave 2:fa04a99dcdab 47 *
daveTshave 2:fa04a99dcdab 48 */
daveTshave 2:fa04a99dcdab 49 void encode(void);
daveTshave 2:fa04a99dcdab 50
daveTshave 2:fa04a99dcdab 51 InterruptIn channelA_;
daveTshave 2:fa04a99dcdab 52
daveTshave 2:fa04a99dcdab 53 volatile int pulses_;
daveTshave 2:fa04a99dcdab 54
daveTshave 2:fa04a99dcdab 55 };
daveTshave 2:fa04a99dcdab 56
daveTshave 2:fa04a99dcdab 57 #endif /* counter_H */