Rotary encoder library.

Dependents:   RotaryEncoder_TestProgram ST7735_Pong accuBlast_display

Committer:
shintamainjp
Date:
Sun Dec 19 05:03:45 2010 +0000
Revision:
0:6537b3b709b6
Initial version.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shintamainjp 0:6537b3b709b6 1 /**
shintamainjp 0:6537b3b709b6 2 * =============================================================================
shintamainjp 0:6537b3b709b6 3 * Rotary Encoder class (Version 0.0.1)
shintamainjp 0:6537b3b709b6 4 * =============================================================================
shintamainjp 0:6537b3b709b6 5 * Copyright (c) 2010 Shinichiro Nakamura (CuBeatSystems)
shintamainjp 0:6537b3b709b6 6 *
shintamainjp 0:6537b3b709b6 7 * Permission is hereby granted, free of charge, to any person obtaining a copy
shintamainjp 0:6537b3b709b6 8 * of this software and associated documentation files (the "Software"), to deal
shintamainjp 0:6537b3b709b6 9 * in the Software without restriction, including without limitation the rights
shintamainjp 0:6537b3b709b6 10 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
shintamainjp 0:6537b3b709b6 11 * copies of the Software, and to permit persons to whom the Software is
shintamainjp 0:6537b3b709b6 12 * furnished to do so, subject to the following conditions:
shintamainjp 0:6537b3b709b6 13 *
shintamainjp 0:6537b3b709b6 14 * The above copyright notice and this permission notice shall be included in
shintamainjp 0:6537b3b709b6 15 * all copies or substantial portions of the Software.
shintamainjp 0:6537b3b709b6 16 *
shintamainjp 0:6537b3b709b6 17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
shintamainjp 0:6537b3b709b6 18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
shintamainjp 0:6537b3b709b6 19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
shintamainjp 0:6537b3b709b6 20 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
shintamainjp 0:6537b3b709b6 21 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
shintamainjp 0:6537b3b709b6 22 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
shintamainjp 0:6537b3b709b6 23 * THE SOFTWARE.
shintamainjp 0:6537b3b709b6 24 * =============================================================================
shintamainjp 0:6537b3b709b6 25 */
shintamainjp 0:6537b3b709b6 26
shintamainjp 0:6537b3b709b6 27 #ifndef ROTARY_ENCODER_H
shintamainjp 0:6537b3b709b6 28 #define ROTARY_ENCODER_H
shintamainjp 0:6537b3b709b6 29
shintamainjp 0:6537b3b709b6 30 #include "mbed.h"
shintamainjp 0:6537b3b709b6 31
shintamainjp 0:6537b3b709b6 32 /**
shintamainjp 0:6537b3b709b6 33 */
shintamainjp 0:6537b3b709b6 34 class RotaryEncoder {
shintamainjp 0:6537b3b709b6 35 public:
shintamainjp 0:6537b3b709b6 36 /**
shintamainjp 0:6537b3b709b6 37 * Create rotary encoder.
shintamainjp 0:6537b3b709b6 38 *
shintamainjp 0:6537b3b709b6 39 * @param pin1_name
shintamainjp 0:6537b3b709b6 40 * @param pin2_name
shintamainjp 0:6537b3b709b6 41 * @param min Minimum value.
shintamainjp 0:6537b3b709b6 42 * @param max Maximum value.
shintamainjp 0:6537b3b709b6 43 * @param val Default value.
shintamainjp 0:6537b3b709b6 44 */
shintamainjp 0:6537b3b709b6 45 RotaryEncoder(PinName pin1_name, PinName pin2_name, int min = 0, int max = 100, int val = 50);
shintamainjp 0:6537b3b709b6 46
shintamainjp 0:6537b3b709b6 47 /**
shintamainjp 0:6537b3b709b6 48 * Dispose.
shintamainjp 0:6537b3b709b6 49 */
shintamainjp 0:6537b3b709b6 50 ~RotaryEncoder();
shintamainjp 0:6537b3b709b6 51
shintamainjp 0:6537b3b709b6 52 /**
shintamainjp 0:6537b3b709b6 53 * Get the minimum value.
shintamainjp 0:6537b3b709b6 54 *
shintamainjp 0:6537b3b709b6 55 * @return The minimum value.
shintamainjp 0:6537b3b709b6 56 */
shintamainjp 0:6537b3b709b6 57 int getMin() const {
shintamainjp 0:6537b3b709b6 58 return min;
shintamainjp 0:6537b3b709b6 59 }
shintamainjp 0:6537b3b709b6 60
shintamainjp 0:6537b3b709b6 61 /**
shintamainjp 0:6537b3b709b6 62 * Get the maximum value.
shintamainjp 0:6537b3b709b6 63 *
shintamainjp 0:6537b3b709b6 64 * @return The maximum value.
shintamainjp 0:6537b3b709b6 65 */
shintamainjp 0:6537b3b709b6 66 int getMax() const {
shintamainjp 0:6537b3b709b6 67 return max;
shintamainjp 0:6537b3b709b6 68 }
shintamainjp 0:6537b3b709b6 69
shintamainjp 0:6537b3b709b6 70 /**
shintamainjp 0:6537b3b709b6 71 * Get the value.
shintamainjp 0:6537b3b709b6 72 *
shintamainjp 0:6537b3b709b6 73 * @param The value.
shintamainjp 0:6537b3b709b6 74 */
shintamainjp 0:6537b3b709b6 75 int getVal() const {
shintamainjp 0:6537b3b709b6 76 return val;
shintamainjp 0:6537b3b709b6 77 }
shintamainjp 0:6537b3b709b6 78
shintamainjp 0:6537b3b709b6 79 private:
shintamainjp 0:6537b3b709b6 80 DigitalIn pin1;
shintamainjp 0:6537b3b709b6 81 DigitalIn pin2;
shintamainjp 0:6537b3b709b6 82 const int min;
shintamainjp 0:6537b3b709b6 83 const int max;
shintamainjp 0:6537b3b709b6 84 int val;
shintamainjp 0:6537b3b709b6 85 Ticker ticker;
shintamainjp 0:6537b3b709b6 86
shintamainjp 0:6537b3b709b6 87 /**
shintamainjp 0:6537b3b709b6 88 * Internal tick function.
shintamainjp 0:6537b3b709b6 89 */
shintamainjp 0:6537b3b709b6 90 void func_ticker();
shintamainjp 0:6537b3b709b6 91 };
shintamainjp 0:6537b3b709b6 92
shintamainjp 0:6537b3b709b6 93 #endif