Committer:
daveTshave
Date:
Fri Nov 25 14:03:51 2011 +0000
Revision:
1:8c1bace3af7b
Parent:
0:f4c92b67e7be
Child:
2:fa04a99dcdab

        

Who changed what in which revision?

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