micromouse
Fork of AVEncoder by
AVEncoder.h@0:a32ab75adcad, 2015-11-03 (annotated)
- Committer:
- aravindsv
- Date:
- Tue Nov 03 06:12:30 2015 +0000
- Revision:
- 0:a32ab75adcad
- Child:
- 1:1d86a9860ca0
Simple Encoder class that does not take direction into account
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
aravindsv | 0:a32ab75adcad | 1 | /** |
aravindsv | 0:a32ab75adcad | 2 | * @author Aravind Vadali |
aravindsv | 0:a32ab75adcad | 3 | * |
aravindsv | 0:a32ab75adcad | 4 | * @section LICENSE |
aravindsv | 0:a32ab75adcad | 5 | * |
aravindsv | 0:a32ab75adcad | 6 | * Copyright (c) 2015 |
aravindsv | 0:a32ab75adcad | 7 | * |
aravindsv | 0:a32ab75adcad | 8 | * Permission is hereby granted, free of charge, to any person obtaining a copy |
aravindsv | 0:a32ab75adcad | 9 | * of this software and associated documentation files (the "Software"), to deal |
aravindsv | 0:a32ab75adcad | 10 | * in the Software without restriction, including without limitation the rights |
aravindsv | 0:a32ab75adcad | 11 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
aravindsv | 0:a32ab75adcad | 12 | * copies of the Software, and to permit persons to whom the Software is |
aravindsv | 0:a32ab75adcad | 13 | * furnished to do so, subject to the following conditions: |
aravindsv | 0:a32ab75adcad | 14 | * |
aravindsv | 0:a32ab75adcad | 15 | * The above copyright notice and this permission notice shall be included in |
aravindsv | 0:a32ab75adcad | 16 | * all copies or substantial portions of the Software. |
aravindsv | 0:a32ab75adcad | 17 | * |
aravindsv | 0:a32ab75adcad | 18 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
aravindsv | 0:a32ab75adcad | 19 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
aravindsv | 0:a32ab75adcad | 20 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
aravindsv | 0:a32ab75adcad | 21 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
aravindsv | 0:a32ab75adcad | 22 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
aravindsv | 0:a32ab75adcad | 23 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
aravindsv | 0:a32ab75adcad | 24 | * THE SOFTWARE. |
aravindsv | 0:a32ab75adcad | 25 | * |
aravindsv | 0:a32ab75adcad | 26 | * @section DESCRIPTION |
aravindsv | 0:a32ab75adcad | 27 | * Because the QEI library is buggy as !@#$ |
aravindsv | 0:a32ab75adcad | 28 | * Instead of even trying to determine direction, this will just give number of |
aravindsv | 0:a32ab75adcad | 29 | * pulses. A more fleshed out solution where direction is taken into account can |
aravindsv | 0:a32ab75adcad | 30 | * be worked out later. |
aravindsv | 0:a32ab75adcad | 31 | **/ |
aravindsv | 0:a32ab75adcad | 32 | |
aravindsv | 0:a32ab75adcad | 33 | #ifndef QEI_H |
aravindsv | 0:a32ab75adcad | 34 | #define QEI_H |
aravindsv | 0:a32ab75adcad | 35 | |
aravindsv | 0:a32ab75adcad | 36 | /** |
aravindsv | 0:a32ab75adcad | 37 | * Includes |
aravindsv | 0:a32ab75adcad | 38 | */ |
aravindsv | 0:a32ab75adcad | 39 | #include "mbed.h" |
aravindsv | 0:a32ab75adcad | 40 | |
aravindsv | 0:a32ab75adcad | 41 | class AVEncoder { |
aravindsv | 0:a32ab75adcad | 42 | |
aravindsv | 0:a32ab75adcad | 43 | public: |
aravindsv | 0:a32ab75adcad | 44 | AVEncoder(PinName channelA, PinName channelB); |
aravindsv | 0:a32ab75adcad | 45 | unsigned long int getPulses(); |
aravindsv | 0:a32ab75adcad | 46 | void reset(); |
aravindsv | 0:a32ab75adcad | 47 | private: |
aravindsv | 0:a32ab75adcad | 48 | unsigned long int m_pulses; |
aravindsv | 0:a32ab75adcad | 49 | InterruptIn chanA; |
aravindsv | 0:a32ab75adcad | 50 | InterruptIn chanB; |
aravindsv | 0:a32ab75adcad | 51 | void incrementCount(); |
aravindsv | 0:a32ab75adcad | 52 | }; |
aravindsv | 0:a32ab75adcad | 53 | |
aravindsv | 0:a32ab75adcad | 54 | |
aravindsv | 0:a32ab75adcad | 55 | #endif /* QEI_H */ |