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.
Fork of DebouncedIn by
DebouncedIn.h
00001 /** 00002 * DebouncedIn class version 1.0 00003 * Created by Andres Moya Bedoya, updated by Ben Faucher 00004 */ 00005 00006 #include "mbed.h" 00007 00008 #ifndef _DEBOUNCED_IN_H_ 00009 #define _DEBOUNCED_IN_H_ 00010 00011 /** 00012 * DebouncedIn object, uses software tickers to debounce mechanical inputs. 00013 */ 00014 00015 class DebouncedIn { 00016 public: 00017 /** Create a DebouncedIn connected to the specified pin 00018 * 00019 * @param in DigitalIn pin to connect to 00020 */ 00021 DebouncedIn(PinName in); 00022 00023 /** Same as before, with option to specify pin mode 00024 * 00025 * @param in DigitalIn pin to connect to 00026 * @param mode (optional) Set pull mode - PullUp, PullDown, PullNone, OpenDrain 00027 */ 00028 DebouncedIn(PinName in, PinMode mode); 00029 00030 /** Read the input state, represented as 0 or 1 (int) 00031 * 00032 * @returns 00033 * An integer representing the state of the input pin, 00034 * 0 for logical 0, 1 for logical 1. State changes when input 00035 * has been steady for at least 40ms (8 ticker cycles of 5ms). 00036 */ 00037 int read (void); 00038 00039 /** An operator shorthand for read() 00040 */ 00041 operator int(); 00042 00043 /** Rising edge count (int) 00044 * 00045 * @returns 00046 * An integer representing the number of times the switch has 00047 * changed from low to high. Count resets to zero when this 00048 * function is called. 00049 */ 00050 int rising(void); 00051 00052 /** Falling edge count (int) 00053 * 00054 * @returns 00055 * An integer representing the number of times the switch has 00056 * changed from high to low. Count resets to zero when this 00057 * function is called. 00058 */ 00059 int falling(void); 00060 00061 /** Steady state tick count (int) 00062 * 00063 * @returns 00064 * An integer representing how many ticker cycles the input has been 00065 * steady for. Ticker cycles every 5ms. 00066 */ 00067 int steady(void); 00068 00069 private : 00070 // objects 00071 DigitalIn _in; 00072 Ticker _ticker; 00073 00074 // function to take a sample, and update flags 00075 void _sample(void); 00076 00077 // counters and flags 00078 int _samples; 00079 int _output; 00080 int _output_last; 00081 int _rising_flag; 00082 int _falling_flag; 00083 int _state_counter; 00084 00085 }; 00086 00087 #endif
Generated on Sun Jul 24 2022 09:39:58 by
1.7.2
