counter.h@1:8c1bace3af7b, 2011-11-25 (annotated)
- 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?
User | Revision | Line number | New 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 */ |