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