Button #63

Merged
thomasfredericks merged 5 commits from Button into master 2020-08-07 00:42:30 +03:00
61 changed files with 1876 additions and 394 deletions
+159 -53
View File
@@ -2,30 +2,175 @@
Debouncing library for Arduino and Wiring by Thomas Ouellet Fredericks with contributions from: Eric Lowry, Jim Schimpf, Tom Harkaway, Joachim Krüger and MrGradgrind.
More about debouncing: http://en.wikipedia.org/wiki/Debounce#Contact_bounce
Basically, the mechanical part of buttons and switches vibrate slightly when closed or opened causing multiple undesired false states (similar to noise). This library filters out these undesired state changes. More about debouncing: http://en.wikipedia.org/wiki/Debounce#Contact_bounce
See the bottom of this page for a basic usage example and the "examples" folder for more.
## GITHUB PAGE
https://github.com/thomasfredericks/Bounce2
## DOCUMENTATION
The complete class documentation can be found in the "docs" folder or [online here](http://thomasfredericks.github.io/Bounce2/).
# HAVE A QUESTION?
Please post your questions [here](http://forum.arduino.cc/index.php?topic=266132.0).
The library is composed of three classes:
* Debouncer : The code that does the actual debouncing. Only advanced users should play with this class.
* Bounce : This is the general use library. It links the Debouncer to a hardware pin on your board.
* Button : A special version of Bounce for buttons that are pressed.
# INSTALLATION & DOWNLOAD
Install through your software's Library Manager or download the latest version [here](https://github.com/thomasfredericks/Bounce2/archive/master.zip) and put the "Bounce2" folder in your "libraries" folder.
The original version of Bounce (Bounce 1) is included in the download but not supported anymore.
Please note that the original version of this library (Bounce 1) is included in the "extras" folder of the download but not supported anymore.
## BASIC USE
### INSTANTIATE
```cpp
#include <Bounce2.h>
Bounce b = Bounce(); // Instantiate a Bounce object
```
### SETUP
```cpp
b.attach ( <PIN> , <PIN MODE> );
b.interval( <INTERVAL IN MS> );
```
### LOOP
```cpp
b.update();
if ( b.changed() ) {
// THE STATE OF THE INPUT CHANGED
int deboucedValue = b.read();
// DO SOMETHING WITH THE VALUE
}
```
# DEBOUNCE ALGORITHMS (FOR ADVANCED USERS)
## BOUNCE EXAMPLE
```cpp
// This example toggles the debug LED (pin 13) on or off when a button on pin 2 is pressed.
// Include the Bounce2 library found here :
// https://github.com/thomasfredericks/Bounce2
#include <Bounce2.h>
#define BUTTON_PIN 2
#define LED_PIN 13
int ledState = LOW;
Bounce b = Bounce(); // Instantiate a Bounce object
void setup() {
b.attach(BUTTON_PIN,INPUT_PULLUP); // Attach the debouncer to a pin with INPUT_PULLUP mode
b.interval(25); // Use a debounce interval of 25 milliseconds
pinMode(LED_PIN,OUTPUT); // Setup the LED
digitalWrite(LED_PIN,ledState); // Turn off the LED
}
void loop() {
b.update(); // Update the Bounce instance
if ( b.fell() ) { // Call code if button transitions from HIGH to LOW
ledState = !ledState; // Toggle LED state
digitalWrite(LED_PIN,ledState); // Apply new LED state
}
}
```
## BUTTON EXAMPLE
```cpp
/*
DESCRIPTION
====================
Pressing a physical button switches a LED on or off.
Simple example of the Button class from the Bounce library.
The Button class matches an electrical state to a physical action
with <Button>.setPressedState(LOW or HIGH).
Set BUTTON_PIN to the pin attached to the button.
Set LED_PIN to the pin attached to a LED.
*/
// Include the Bounce2 library found here :
// https://github.com/thomasfredericks/Bounce2
#include <Bounce2.h>
// INSTANTIATE A Button OBJECT
Button button = Button();
// WE WILL attach() THE BUTTON TO THE FOLLOWING PIN IN setup()
#define BUTTON_PIN 39
// DEFINE THE PIN FOR THE LED :
// 1) SOME BOARDS HAVE A DEFAULT LED (LED_BUILTIN)
//#define LED_PIN LED_BUILTIN
// 2) OTHERWISE SET YOUR OWN PIN
#define LED_PIN 13
// SET A VARIABLE TO STORE THE LED STATE
bool ledState = LOW;
void setup() {
// BUTTON SETUP
// SELECT ONE OF THE FOLLOWING :
// 1) IF YOUR BUTTON HAS AN INTERNAL PULL-UP
// button.attach( BUTTON_PIN , INPUT_PULLUP ); // USE INTERNAL PULL-UP
// 2) IF YOUR BUTTON USES AN EXTERNAL PULL-UP
button.attach( BUTTON_PIN, INPUT ); // USE EXTERNAL PULL-UP
// DEBOUNCE INTERVAL IN MILLISECONDS
button.interval(5);
// INDICATE THAT THE LOW STATE CORRESPONDS TO PHYSICALLY PRESSING THE BUTTON
button.setPressedState(LOW);
// LED SETUP
pinMode(LED_PIN,OUTPUT);
digitalWrite(LED_PIN,ledState);
}
void loop() {
// UPDATE THE BUTTON
// YOU MUST CALL THIS EVERY LOOP
button.update();
if ( button.pressed() ) {
// TOGGLE THE LED STATE :
ledState = !ledState; // SET ledState TO THE OPPOSITE OF ledState
digitalWrite(LED_PIN,ledState);
}
}
```
# DOCUMENTATION
The complete class documentation can be found in the "docs" folder or [online here](http://thomasfredericks.github.io/Bounce2/).
## GITHUB PAGE (SOURCE CODE)
https://github.com/thomasfredericks/Bounce2
# HAVE A QUESTION?
Please post your questions [here](http://forum.arduino.cc/index.php?topic=266132.0).
# ALTERNATE DEBOUNCE ALGORITHMS FOR ADVANCED USERS AND SPECIFIC CASES
## STABLE INTERVAL
@@ -44,7 +189,6 @@ By defining "#define BOUNCE_LOCK_OUT" in "Bounce.h" (or in your code before incl
![](https://raw.github.com/thomasfredericks/Bounce-Arduino-Wiring/master/extras/BouncySwitch_lockout.png)
## WITH PROMPT DETECTION
By defining "#define BOUNCE_WITH_PROMPT_DETECTION" in "Bounce.h" (or in your code before including "Bounce.h") you can activate an alternative debouncing method. Button state changes are available immediately so long as the previous state has been stable for the timeout period. Otherwise the state will be updated as soon as the timeout period allows.
@@ -56,42 +200,4 @@ By defining "#define BOUNCE_WITH_PROMPT_DETECTION" in "Bounce.h" (or in your cod
#define BOUNCE_WITH_PROMPT_DETECTION
```
# BASIC EXAMPLE
```cpp
// This example toggles the debug LED (pin 13) on or off
// when a button on pin 2 is pressed.
// Include the Bounce2 library found here :
// https://github.com/thomasfredericks/Bounce2
#include <Bounce2.h>
#define BUTTON_PIN 2
#define LED_PIN 13
int ledState = LOW;
Bounce debouncer = Bounce(); // Instantiate a Bounce object
void setup() {
debouncer.attach(BUTTON_PIN,INPUT_PULLUP); // Attach the debouncer to a pin with INPUT_PULLUP mode
debouncer.interval(25); // Use a debounce interval of 25 milliseconds
pinMode(LED_PIN,OUTPUT); // Setup the LED
digitalWrite(LED_PIN,ledState);
}
void loop() {
debouncer.update(); // Update the Bounce instance
if ( debouncer.fell() ) { // Call code if button transitions from HIGH to LOW
ledState = !ledState; // Toggle LED state
digitalWrite(LED_PIN,ledState); // Apply new LED state
}
}
```
File diff suppressed because one or more lines are too long
+3 -1
View File
@@ -64,7 +64,9 @@ $(function() {
<div class="contents">
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
<table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_bounce.html" target="_self">Bounce</a></td><td class="desc"></td></tr>
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_bounce.html" target="_self">Bounce</a></td><td class="desc">The <a class="el" href="class_debouncer.html" title="The Debouce class. Just the deboucing code separated from all harware. ">Debouncer</a>:<a class="el" href="class_bounce.html" title="The Debouncer:Bounce class. Links the Deboucing class to a hardware pin. ">Bounce</a> class. Links the Deboucing class to a hardware pin </td></tr>
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_button.html" target="_self">Button</a></td><td class="desc">The Debouncer:Bounce:<a class="el" href="class_button.html" title="The Debouncer:Bounce:Button class. The Button class matches an electrical state to a physical action...">Button</a> class. The <a class="el" href="class_button.html" title="The Debouncer:Bounce:Button class. The Button class matches an electrical state to a physical action...">Button</a> class matches an electrical state to a physical action </td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_debouncer.html" target="_self">Debouncer</a></td><td class="desc">The Debouce class. Just the deboucing code separated from all harware </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
+2 -2
View File
@@ -62,8 +62,8 @@ $(function() {
<div class="title">bounce2buttons.ino</div> </div>
</div><!--header-->
<div class="contents">
<p>Example of two instances of the <a class="el" href="class_bounce.html">Bounce</a> class that switches the debug LED when either one of the two buttons is pressed.</p>
<div class="fragment"><div class="line"></div><div class="line">/* </div><div class="line"> DESCRIPTION</div><div class="line"> ====================</div><div class="line"> Simple example of the Bounce library that switches the debug LED when </div><div class="line"> either of 2 buttons are pressed.</div><div class="line"> */</div><div class="line"> </div><div class="line">// Include the Bounce2 library found here :</div><div class="line">// https://github.com/thomasfredericks/Bounce2</div><div class="line">#include &lt;Bounce2.h&gt;</div><div class="line"></div><div class="line">#define BUTTON_PIN_1 2</div><div class="line">#define BUTTON_PIN_2 3</div><div class="line"></div><div class="line"></div><div class="line">#define LED_PIN 13</div><div class="line"></div><div class="line">// Instantiate a Bounce object</div><div class="line">Bounce debouncer1 = Bounce(); </div><div class="line"></div><div class="line">// Instantiate another Bounce object</div><div class="line">Bounce debouncer2 = Bounce(); </div><div class="line"></div><div class="line">void setup() {</div><div class="line"></div><div class="line"> // Setup the first button with an internal pull-up :</div><div class="line"> pinMode(BUTTON_PIN_1,INPUT_PULLUP);</div><div class="line"> // After setting up the button, setup the Bounce instance :</div><div class="line"> debouncer1.attach(BUTTON_PIN_1);</div><div class="line"> debouncer1.interval(5); // interval in ms</div><div class="line"> </div><div class="line"> // Setup the second button with an internal pull-up :</div><div class="line"> pinMode(BUTTON_PIN_2,INPUT_PULLUP);</div><div class="line"> // After setting up the button, setup the Bounce instance :</div><div class="line"> debouncer2.attach(BUTTON_PIN_2);</div><div class="line"> debouncer2.interval(5); // interval in ms</div><div class="line"></div><div class="line"></div><div class="line"> //Setup the LED :</div><div class="line"> pinMode(LED_PIN,OUTPUT);</div><div class="line"></div><div class="line">}</div><div class="line"></div><div class="line">void loop() {</div><div class="line"> // Update the Bounce instances :</div><div class="line"> debouncer1.update();</div><div class="line"> debouncer2.update();</div><div class="line"></div><div class="line"> // Get the updated value :</div><div class="line"> int value1 = debouncer1.read();</div><div class="line"> int value2 = debouncer2.read();</div><div class="line"></div><div class="line"> // Turn on the LED if either button is pressed :</div><div class="line"> if ( value1 == LOW || value2 == LOW ) {</div><div class="line"> digitalWrite(LED_PIN, HIGH );</div><div class="line"> } </div><div class="line"> else {</div><div class="line"> digitalWrite(LED_PIN, LOW );</div><div class="line"> }</div><div class="line"></div><div class="line">}</div><div class="line"></div><div class="line"></div></div><!-- fragment --> </div><!-- contents -->
<p>Example of two instances of the <a class="el" href="class_bounce.html" title="The Debouncer:Bounce class. Links the Deboucing class to a hardware pin. ">Bounce</a> class that switches the debug LED when either one of the two buttons is pressed.</p>
<div class="fragment"></div><!-- fragment --> </div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
+2 -1
View File
@@ -62,7 +62,8 @@ $(function() {
<div class="title">bounce.ino</div> </div>
</div><!--header-->
<div class="contents">
<p>Simple example of the <a class="el" href="class_bounce.html">Bounce</a> library that switches the debug LED when a button is pressed.</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>Make Bounce2 more abstract. Split it from the hardware layer. Remove deboucing code from Bounce2 and make a new Debounce class from that code. Bounce2 should extend Debounce. </dd></dl>
<p>Simple example of the <a class="el" href="class_bounce.html" title="The Debouncer:Bounce class. Links the Deboucing class to a hardware pin. ">Bounce</a> library that switches the debug LED when a button is pressed.</p>
<div class="fragment"><div class="line"></div><div class="line">/* </div><div class="line"> DESCRIPTION</div><div class="line"> ====================</div><div class="line"> Simple example of the Bounce library that switches the debug LED when a button is pressed.</div><div class="line"> */</div><div class="line">// Include the Bounce2 library found here :</div><div class="line">// https://github.com/thomasfredericks/Bounce2</div><div class="line">#include &lt;Bounce2.h&gt;</div><div class="line"></div><div class="line">#define BUTTON_PIN 2</div><div class="line">#define LED_PIN 13</div><div class="line"></div><div class="line">// Instantiate a Bounce object</div><div class="line">Bounce debouncer = Bounce(); </div><div class="line"></div><div class="line">void setup() {</div><div class="line"></div><div class="line"> // Setup the button with an internal pull-up :</div><div class="line"> pinMode(BUTTON_PIN,INPUT_PULLUP);</div><div class="line"></div><div class="line"> // After setting up the button, setup the Bounce instance :</div><div class="line"> debouncer.attach(BUTTON_PIN);</div><div class="line"> debouncer.interval(5); // interval in ms</div><div class="line"></div><div class="line"> //Setup the LED :</div><div class="line"> pinMode(LED_PIN,OUTPUT);</div><div class="line"></div><div class="line">}</div><div class="line"></div><div class="line">void loop() {</div><div class="line"> // Update the Bounce instance :</div><div class="line"> debouncer.update();</div><div class="line"></div><div class="line"> // Get the updated value :</div><div class="line"> int value = debouncer.read();</div><div class="line"></div><div class="line"> // Turn on or off the LED as determined by the state :</div><div class="line"> if ( value == LOW ) {</div><div class="line"> digitalWrite(LED_PIN, HIGH );</div><div class="line"> } </div><div class="line"> else {</div><div class="line"> digitalWrite(LED_PIN, LOW );</div><div class="line"> }</div><div class="line"></div><div class="line">}</div><div class="line"></div><div class="line"></div></div><!-- fragment --> </div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
+1 -1
View File
@@ -63,7 +63,7 @@ $(function() {
</div><!--header-->
<div class="contents">
<p>Detect the falling edge of multiple buttons. Eight buttons with internal pullups. Toggles a LED when any button is pressed. Buttons on pins 2,3,4,5,6,7,8,9</p>
<div class="fragment"><div class="line">// Detect the falling edge of multiple buttons.</div><div class="line">// Eight buttons with internal pullups.</div><div class="line">// Toggles a LED when any button is pressed.</div><div class="line">// Buttons on pins 2,3,4,5,6,7,8,9</div><div class="line"></div><div class="line">// Include the Bounce2 library found here :</div><div class="line">// https://github.com/thomasfredericks/Bounce2</div><div class="line">#include &lt;Bounce2.h&gt;</div><div class="line"></div><div class="line">#define LED_PIN 13</div><div class="line"></div><div class="line">#define NUM_BUTTONS 8</div><div class="line">const uint8_t BUTTON_PINS[NUM_BUTTONS] = {2, 3, 4, 5, 6, 7, 8, 9};</div><div class="line"></div><div class="line">int ledState = LOW;</div><div class="line"></div><div class="line">Bounce * buttons = new Bounce[NUM_BUTTONS];</div><div class="line"></div><div class="line">void setup() {</div><div class="line"></div><div class="line"> for (int i = 0; i &lt; NUM_BUTTONS; i++) {</div><div class="line"> buttons[i].attach( BUTTON_PINS[i] , INPUT_PULLUP ); //setup the bounce instance for the current button</div><div class="line"> buttons[i].interval(25); // interval in ms</div><div class="line"> }</div><div class="line"></div><div class="line"> // Setup the LED :</div><div class="line"> pinMode(LED_PIN, OUTPUT);</div><div class="line"> digitalWrite(LED_PIN, ledState);</div><div class="line"></div><div class="line"></div><div class="line">}</div><div class="line"></div><div class="line">void loop() {</div><div class="line"></div><div class="line"> bool needToToggleLed = false;</div><div class="line"></div><div class="line"></div><div class="line"> for (int i = 0; i &lt; NUM_BUTTONS; i++) {</div><div class="line"> // Update the Bounce instance :</div><div class="line"> buttons[i].update();</div><div class="line"> // If it fell, flag the need to toggle the LED</div><div class="line"> if ( buttons[i].fell() ) {</div><div class="line"> needToToggleLed = true;</div><div class="line"> }</div><div class="line"> }</div><div class="line"></div><div class="line"> // if a LED toggle has been flagged :</div><div class="line"> if ( needToToggleLed ) {</div><div class="line"> // Toggle LED state :</div><div class="line"> ledState = !ledState;</div><div class="line"> digitalWrite(LED_PIN, ledState);</div><div class="line"> }</div><div class="line"></div><div class="line"></div><div class="line">}</div><div class="line"></div></div><!-- fragment --> </div><!-- contents -->
<div class="fragment"></div><!-- fragment --> </div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
+21 -16
View File
@@ -67,23 +67,28 @@ $(function() {
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="class_bounce.html#aba08e592941465d033e3eba3dde66eaf">attach</a>(int pin, int mode)</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="class_bounce.html#a163477dbcbaf1a3dee6cb3b62eedf09e">attach</a>(int pin)</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_bounce.html#aa62a2e2b5ad0ee6913a95f2f2a0e7606">Bounce</a>()</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="class_bounce.html#ab34517094faf21d4f38b36da2915132b">Bounce</a>(uint8_t pin, unsigned long interval_millis)</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_bounce.html#a62412d814d36102ab3d285e801d5d29a">duration</a>()</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>begin</b>() (defined in <a class="el" href="class_debouncer.html">Debouncer</a>)</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr><td class="entry"><a class="el" href="class_bounce.html#aa62a2e2b5ad0ee6913a95f2f2a0e7606">Bounce</a>()</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Bounce</b>(uint8_t pin, unsigned long interval_millis) (defined in <a class="el" href="class_bounce.html">Bounce</a>)</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_debouncer.html#a47c83f13a03920d21fbfafd8469ec06b">changed</a>()</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_debouncer.html#a34c46ca04d4178933cc0049436d10fe6">Debouncer</a>()</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="class_debouncer.html#a462994f1f9a20876b2ee239eeee97448">duration</a>()</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>durationOfPreviousState</b> (defined in <a class="el" href="class_debouncer.html">Debouncer</a>)</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr><td class="entry"><a class="el" href="class_bounce.html#ac756559419bfa1c5060e5e4a4ad6406f">fallingEdge</a>()</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_bounce.html#abfbb0910f5b1ec4e25315cff26dd6289">fell</a>()</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="class_bounce.html#a2c6e68bf749497c597a9437b488b3d7c">interval</a>(uint16_t interval_millis)</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>interval_millis</b> (defined in <a class="el" href="class_bounce.html">Bounce</a>)</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>pin</b> (defined in <a class="el" href="class_bounce.html">Bounce</a>)</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>previous_millis</b> (defined in <a class="el" href="class_bounce.html">Bounce</a>)</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr><td class="entry"><a class="el" href="class_bounce.html#ae1936fdf44501992707e6cbaee9bbc76">read</a>()</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>readCurrentState</b>() (defined in <a class="el" href="class_bounce.html">Bounce</a>)</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="class_bounce.html#a3417beb80eb6593d768c2e9884c57aa0">risingEdge</a>()</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_bounce.html#a9e4187934576e568cdfa8f94efeff6f2">rose</a>()</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>setPinMode</b>(int pin, int mode) (defined in <a class="el" href="class_bounce.html">Bounce</a>)</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>state</b> (defined in <a class="el" href="class_bounce.html">Bounce</a>)</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>stateChangeLastTime</b> (defined in <a class="el" href="class_bounce.html">Bounce</a>)</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_bounce.html#ab36d7b83bf32e0935a0c2c6a05096441">update</a>()</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_debouncer.html#a1ef5a04b4ebe97352ff3bb227476035c">fell</a>()</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="class_debouncer.html#a930bf3945e698d77b889f6309079857d">interval</a>(uint16_t interval_millis)</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>interval_millis</b> (defined in <a class="el" href="class_debouncer.html">Debouncer</a>)</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr><td class="entry"><a class="el" href="class_bounce.html#a1cb79cb0ba2379cd12cc7c098d97053a">pin</a></td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>previous_millis</b> (defined in <a class="el" href="class_debouncer.html">Debouncer</a>)</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr><td class="entry"><a class="el" href="class_debouncer.html#a89ab95e7ac24874bb8cb684dc36a98b9">previousDuration</a>()</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_debouncer.html#a2cae68910c19c778507f257842fc41bf">read</a>()</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>readCurrentState</b>() (defined in <a class="el" href="class_bounce.html">Bounce</a>)</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_bounce.html#a3417beb80eb6593d768c2e9884c57aa0">risingEdge</a>()</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_debouncer.html#a9990de6fa7256842c35c246d7dea8dbb">rose</a>()</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setPinMode</b>(int pin, int mode) (defined in <a class="el" href="class_bounce.html">Bounce</a>)</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>state</b> (defined in <a class="el" href="class_debouncer.html">Debouncer</a>)</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>stateChangeLastTime</b> (defined in <a class="el" href="class_debouncer.html">Debouncer</a>)</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr><td class="entry"><a class="el" href="class_debouncer.html#a72f3e8d483555031d2ac21b0b7702c06">update</a>()</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
+75 -133
View File
@@ -68,50 +68,72 @@ $(function() {
</div><!--header-->
<div class="contents">
<p>The <a class="el" href="class_debouncer.html" title="The Debouce class. Just the deboucing code separated from all harware. ">Debouncer</a>:<a class="el" href="class_bounce.html" title="The Debouncer:Bounce class. Links the Deboucing class to a hardware pin. ">Bounce</a> class. Links the Deboucing class to a hardware pin.
<a href="class_bounce.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_bounce2_8h_source.html">Bounce2.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Bounce:</div>
<div class="dyncontent">
<div class="center">
<img src="class_bounce.png" usemap="#Bounce_map" alt=""/>
<map id="Bounce_map" name="Bounce_map">
<area href="class_debouncer.html" title="The Debouce class. Just the deboucing code separated from all harware. " alt="Debouncer" shape="rect" coords="0,0,75,24"/>
<area href="class_button.html" title="The Debouncer:Bounce:Button class. The Button class matches an electrical state to a physical action..." alt="Button" shape="rect" coords="0,112,75,136"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aa62a2e2b5ad0ee6913a95f2f2a0e7606"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bounce.html#aa62a2e2b5ad0ee6913a95f2f2a0e7606">Bounce</a> ()</td></tr>
<tr class="memdesc:aa62a2e2b5ad0ee6913a95f2f2a0e7606"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an instance of the <a class="el" href="class_bounce.html">Bounce</a> class. <a href="#aa62a2e2b5ad0ee6913a95f2f2a0e7606">More...</a><br /></td></tr>
<tr class="memdesc:aa62a2e2b5ad0ee6913a95f2f2a0e7606"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an instance of the <a class="el" href="class_bounce.html" title="The Debouncer:Bounce class. Links the Deboucing class to a hardware pin. ">Bounce</a> class. <a href="#aa62a2e2b5ad0ee6913a95f2f2a0e7606">More...</a><br /></td></tr>
<tr class="separator:aa62a2e2b5ad0ee6913a95f2f2a0e7606"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba08e592941465d033e3eba3dde66eaf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bounce.html#aba08e592941465d033e3eba3dde66eaf">attach</a> (int pin, int mode)</td></tr>
<tr class="memitem:aba08e592941465d033e3eba3dde66eaf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bounce.html#aba08e592941465d033e3eba3dde66eaf">attach</a> (int <a class="el" href="class_bounce.html#a1cb79cb0ba2379cd12cc7c098d97053a">pin</a>, int mode)</td></tr>
<tr class="memdesc:aba08e592941465d033e3eba3dde66eaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attach to a pin and sets that pin's mode (INPUT, INPUT_PULLUP or OUTPUT). <a href="#aba08e592941465d033e3eba3dde66eaf">More...</a><br /></td></tr>
<tr class="separator:aba08e592941465d033e3eba3dde66eaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a163477dbcbaf1a3dee6cb3b62eedf09e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bounce.html#a163477dbcbaf1a3dee6cb3b62eedf09e">attach</a> (int pin)</td></tr>
<tr class="memitem:a163477dbcbaf1a3dee6cb3b62eedf09e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bounce.html#a163477dbcbaf1a3dee6cb3b62eedf09e">attach</a> (int <a class="el" href="class_bounce.html#a1cb79cb0ba2379cd12cc7c098d97053a">pin</a>)</td></tr>
<tr class="separator:a163477dbcbaf1a3dee6cb3b62eedf09e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c6e68bf749497c597a9437b488b3d7c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bounce.html#a2c6e68bf749497c597a9437b488b3d7c">interval</a> (uint16_t interval_millis)</td></tr>
<tr class="memdesc:a2c6e68bf749497c597a9437b488b3d7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the debounce interval in milliseconds. <a href="#a2c6e68bf749497c597a9437b488b3d7c">More...</a><br /></td></tr>
<tr class="separator:a2c6e68bf749497c597a9437b488b3d7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab36d7b83bf32e0935a0c2c6a05096441"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bounce.html#ab36d7b83bf32e0935a0c2c6a05096441">update</a> ()</td></tr>
<tr class="memdesc:ab36d7b83bf32e0935a0c2c6a05096441"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the pin's state. <a href="#ab36d7b83bf32e0935a0c2c6a05096441">More...</a><br /></td></tr>
<tr class="separator:ab36d7b83bf32e0935a0c2c6a05096441"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1936fdf44501992707e6cbaee9bbc76"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bounce.html#ae1936fdf44501992707e6cbaee9bbc76">read</a> ()</td></tr>
<tr class="memdesc:ae1936fdf44501992707e6cbaee9bbc76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the pin's state (HIGH or LOW). <a href="#ae1936fdf44501992707e6cbaee9bbc76">More...</a><br /></td></tr>
<tr class="separator:ae1936fdf44501992707e6cbaee9bbc76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfbb0910f5b1ec4e25315cff26dd6289"><td class="memItemLeft" align="right" valign="top"><a id="abfbb0910f5b1ec4e25315cff26dd6289"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bounce.html#abfbb0910f5b1ec4e25315cff26dd6289">fell</a> ()</td></tr>
<tr class="memdesc:abfbb0910f5b1ec4e25315cff26dd6289"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if pin signal transitions from high to low. <br /></td></tr>
<tr class="separator:abfbb0910f5b1ec4e25315cff26dd6289"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e4187934576e568cdfa8f94efeff6f2"><td class="memItemLeft" align="right" valign="top"><a id="a9e4187934576e568cdfa8f94efeff6f2"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bounce.html#a9e4187934576e568cdfa8f94efeff6f2">rose</a> ()</td></tr>
<tr class="memdesc:a9e4187934576e568cdfa8f94efeff6f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if pin signal transitions from low to high. <br /></td></tr>
<tr class="separator:a9e4187934576e568cdfa8f94efeff6f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab34517094faf21d4f38b36da2915132b"><td class="memItemLeft" align="right" valign="top"><a id="ab34517094faf21d4f38b36da2915132b"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>Bounce</b> (uint8_t <a class="el" href="class_bounce.html#a1cb79cb0ba2379cd12cc7c098d97053a">pin</a>, unsigned long interval_millis)</td></tr>
<tr class="separator:ab34517094faf21d4f38b36da2915132b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3417beb80eb6593d768c2e9884c57aa0"><td class="memItemLeft" align="right" valign="top"><a id="a3417beb80eb6593d768c2e9884c57aa0"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bounce.html#a3417beb80eb6593d768c2e9884c57aa0">risingEdge</a> ()</td></tr>
<tr class="memdesc:a3417beb80eb6593d768c2e9884c57aa0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deprecated (i.e. do not use). Included for partial compatibility for programs written with <a class="el" href="class_bounce.html">Bounce</a> version 1. <br /></td></tr>
<tr class="memdesc:a3417beb80eb6593d768c2e9884c57aa0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deprecated (i.e. do not use). Included for partial compatibility for programs written with <a class="el" href="class_bounce.html" title="The Debouncer:Bounce class. Links the Deboucing class to a hardware pin. ">Bounce</a> version 1. <br /></td></tr>
<tr class="separator:a3417beb80eb6593d768c2e9884c57aa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac756559419bfa1c5060e5e4a4ad6406f"><td class="memItemLeft" align="right" valign="top"><a id="ac756559419bfa1c5060e5e4a4ad6406f"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bounce.html#ac756559419bfa1c5060e5e4a4ad6406f">fallingEdge</a> ()</td></tr>
<tr class="memdesc:ac756559419bfa1c5060e5e4a4ad6406f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deprecated (i.e. do not use). Included for partial compatibility for programs written with <a class="el" href="class_bounce.html">Bounce</a> version 1. <br /></td></tr>
<tr class="memdesc:ac756559419bfa1c5060e5e4a4ad6406f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deprecated (i.e. do not use). Included for partial compatibility for programs written with <a class="el" href="class_bounce.html" title="The Debouncer:Bounce class. Links the Deboucing class to a hardware pin. ">Bounce</a> version 1. <br /></td></tr>
<tr class="separator:ac756559419bfa1c5060e5e4a4ad6406f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab34517094faf21d4f38b36da2915132b"><td class="memItemLeft" align="right" valign="top"><a id="ab34517094faf21d4f38b36da2915132b"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bounce.html#ab34517094faf21d4f38b36da2915132b">Bounce</a> (uint8_t pin, unsigned long interval_millis)</td></tr>
<tr class="memdesc:ab34517094faf21d4f38b36da2915132b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deprecated (i.e. do not use). Included for partial compatibility for programs written with <a class="el" href="class_bounce.html">Bounce</a> version 1. <br /></td></tr>
<tr class="separator:ab34517094faf21d4f38b36da2915132b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62412d814d36102ab3d285e801d5d29a"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bounce.html#a62412d814d36102ab3d285e801d5d29a">duration</a> ()</td></tr>
<tr class="memdesc:a62412d814d36102ab3d285e801d5d29a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the duration in milliseconds of the current state. <a href="#a62412d814d36102ab3d285e801d5d29a">More...</a><br /></td></tr>
<tr class="separator:a62412d814d36102ab3d285e801d5d29a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_debouncer"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_debouncer')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_debouncer.html">Debouncer</a></td></tr>
<tr class="memitem:a34c46ca04d4178933cc0049436d10fe6 inherit pub_methods_class_debouncer"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_debouncer.html#a34c46ca04d4178933cc0049436d10fe6">Debouncer</a> ()</td></tr>
<tr class="memdesc:a34c46ca04d4178933cc0049436d10fe6 inherit pub_methods_class_debouncer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an instance of the Debounce class. <a href="class_debouncer.html#a34c46ca04d4178933cc0049436d10fe6">More...</a><br /></td></tr>
<tr class="separator:a34c46ca04d4178933cc0049436d10fe6 inherit pub_methods_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a930bf3945e698d77b889f6309079857d inherit pub_methods_class_debouncer"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_debouncer.html#a930bf3945e698d77b889f6309079857d">interval</a> (uint16_t interval_millis)</td></tr>
<tr class="memdesc:a930bf3945e698d77b889f6309079857d inherit pub_methods_class_debouncer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the debounce interval in milliseconds. <a href="class_debouncer.html#a930bf3945e698d77b889f6309079857d">More...</a><br /></td></tr>
<tr class="separator:a930bf3945e698d77b889f6309079857d inherit pub_methods_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72f3e8d483555031d2ac21b0b7702c06 inherit pub_methods_class_debouncer"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_debouncer.html#a72f3e8d483555031d2ac21b0b7702c06">update</a> ()</td></tr>
<tr class="memdesc:a72f3e8d483555031d2ac21b0b7702c06 inherit pub_methods_class_debouncer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the pin's state. <a href="class_debouncer.html#a72f3e8d483555031d2ac21b0b7702c06">More...</a><br /></td></tr>
<tr class="separator:a72f3e8d483555031d2ac21b0b7702c06 inherit pub_methods_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2cae68910c19c778507f257842fc41bf inherit pub_methods_class_debouncer"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_debouncer.html#a2cae68910c19c778507f257842fc41bf">read</a> ()</td></tr>
<tr class="memdesc:a2cae68910c19c778507f257842fc41bf inherit pub_methods_class_debouncer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the pin's state (HIGH or LOW). <a href="class_debouncer.html#a2cae68910c19c778507f257842fc41bf">More...</a><br /></td></tr>
<tr class="separator:a2cae68910c19c778507f257842fc41bf inherit pub_methods_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ef5a04b4ebe97352ff3bb227476035c inherit pub_methods_class_debouncer"><td class="memItemLeft" align="right" valign="top"><a id="a1ef5a04b4ebe97352ff3bb227476035c"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_debouncer.html#a1ef5a04b4ebe97352ff3bb227476035c">fell</a> ()</td></tr>
<tr class="memdesc:a1ef5a04b4ebe97352ff3bb227476035c inherit pub_methods_class_debouncer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if pin signal transitions from high to low. <br /></td></tr>
<tr class="separator:a1ef5a04b4ebe97352ff3bb227476035c inherit pub_methods_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9990de6fa7256842c35c246d7dea8dbb inherit pub_methods_class_debouncer"><td class="memItemLeft" align="right" valign="top"><a id="a9990de6fa7256842c35c246d7dea8dbb"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_debouncer.html#a9990de6fa7256842c35c246d7dea8dbb">rose</a> ()</td></tr>
<tr class="memdesc:a9990de6fa7256842c35c246d7dea8dbb inherit pub_methods_class_debouncer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if pin signal transitions from low to high. <br /></td></tr>
<tr class="separator:a9990de6fa7256842c35c246d7dea8dbb inherit pub_methods_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47c83f13a03920d21fbfafd8469ec06b inherit pub_methods_class_debouncer"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_debouncer.html#a47c83f13a03920d21fbfafd8469ec06b">changed</a> ()</td></tr>
<tr class="memdesc:a47c83f13a03920d21fbfafd8469ec06b inherit pub_methods_class_debouncer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the state changed on last update. <a href="class_debouncer.html#a47c83f13a03920d21fbfafd8469ec06b">More...</a><br /></td></tr>
<tr class="separator:a47c83f13a03920d21fbfafd8469ec06b inherit pub_methods_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a462994f1f9a20876b2ee239eeee97448 inherit pub_methods_class_debouncer"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_debouncer.html#a462994f1f9a20876b2ee239eeee97448">duration</a> ()</td></tr>
<tr class="memdesc:a462994f1f9a20876b2ee239eeee97448 inherit pub_methods_class_debouncer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the duration in milliseconds of the current state. <a href="class_debouncer.html#a462994f1f9a20876b2ee239eeee97448">More...</a><br /></td></tr>
<tr class="separator:a462994f1f9a20876b2ee239eeee97448 inherit pub_methods_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89ab95e7ac24874bb8cb684dc36a98b9 inherit pub_methods_class_debouncer"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_debouncer.html#a89ab95e7ac24874bb8cb684dc36a98b9">previousDuration</a> ()</td></tr>
<tr class="memdesc:a89ab95e7ac24874bb8cb684dc36a98b9 inherit pub_methods_class_debouncer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the duration in milliseconds of the previous state. <a href="class_debouncer.html#a89ab95e7ac24874bb8cb684dc36a98b9">More...</a><br /></td></tr>
<tr class="separator:a89ab95e7ac24874bb8cb684dc36a98b9 inherit pub_methods_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
@@ -119,29 +141,38 @@ Protected Member Functions</h2></td></tr>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>readCurrentState</b> ()</td></tr>
<tr class="separator:ad6efc6dd65035de20f015cc44be37873"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a231a992bf2a1f4521043068e35eb50a6"><td class="memItemLeft" align="right" valign="top"><a id="a231a992bf2a1f4521043068e35eb50a6"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>setPinMode</b> (int pin, int mode)</td></tr>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>setPinMode</b> (int <a class="el" href="class_bounce.html#a1cb79cb0ba2379cd12cc7c098d97053a">pin</a>, int mode)</td></tr>
<tr class="separator:a231a992bf2a1f4521043068e35eb50a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_class_debouncer"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_debouncer')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_debouncer.html">Debouncer</a></td></tr>
<tr class="memitem:a38f85f1c1819a5634d93565e0459117b inherit pro_methods_class_debouncer"><td class="memItemLeft" align="right" valign="top"><a id="a38f85f1c1819a5634d93565e0459117b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>begin</b> ()</td></tr>
<tr class="separator:a38f85f1c1819a5634d93565e0459117b inherit pro_methods_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a223ab27b8094acd12d77a3a9145f56c9"><td class="memItemLeft" align="right" valign="top"><a id="a223ab27b8094acd12d77a3a9145f56c9"></a>
unsigned long&#160;</td><td class="memItemRight" valign="bottom"><b>previous_millis</b></td></tr>
<tr class="separator:a223ab27b8094acd12d77a3a9145f56c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c1991db9415ccc5acf9b24779b332c7"><td class="memItemLeft" align="right" valign="top"><a id="a8c1991db9415ccc5acf9b24779b332c7"></a>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>interval_millis</b></td></tr>
<tr class="separator:a8c1991db9415ccc5acf9b24779b332c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af013db8b02e1e252eb60dd5b40d5480b"><td class="memItemLeft" align="right" valign="top"><a id="af013db8b02e1e252eb60dd5b40d5480b"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>state</b></td></tr>
<tr class="separator:af013db8b02e1e252eb60dd5b40d5480b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1cb79cb0ba2379cd12cc7c098d97053a"><td class="memItemLeft" align="right" valign="top"><a id="a1cb79cb0ba2379cd12cc7c098d97053a"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>pin</b></td></tr>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bounce.html#a1cb79cb0ba2379cd12cc7c098d97053a">pin</a></td></tr>
<tr class="memdesc:a1cb79cb0ba2379cd12cc7c098d97053a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deprecated (i.e. do not use). Included for partial compatibility for programs written with <a class="el" href="class_bounce.html" title="The Debouncer:Bounce class. Links the Deboucing class to a hardware pin. ">Bounce</a> version 1. <br /></td></tr>
<tr class="separator:a1cb79cb0ba2379cd12cc7c098d97053a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5aa630c50e7b783bac50aad0385262e"><td class="memItemLeft" align="right" valign="top"><a id="ad5aa630c50e7b783bac50aad0385262e"></a>
<tr class="inherit_header pro_attribs_class_debouncer"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_class_debouncer')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="class_debouncer.html">Debouncer</a></td></tr>
<tr class="memitem:afab369aec42a15595ebac695a088cccd inherit pro_attribs_class_debouncer"><td class="memItemLeft" align="right" valign="top"><a id="afab369aec42a15595ebac695a088cccd"></a>
unsigned long&#160;</td><td class="memItemRight" valign="bottom"><b>previous_millis</b></td></tr>
<tr class="separator:afab369aec42a15595ebac695a088cccd inherit pro_attribs_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25f000f08b3291f80154ec620abfe52a inherit pro_attribs_class_debouncer"><td class="memItemLeft" align="right" valign="top"><a id="a25f000f08b3291f80154ec620abfe52a"></a>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>interval_millis</b></td></tr>
<tr class="separator:a25f000f08b3291f80154ec620abfe52a inherit pro_attribs_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50b7f921222452bf7328ad84d09c15af inherit pro_attribs_class_debouncer"><td class="memItemLeft" align="right" valign="top"><a id="a50b7f921222452bf7328ad84d09c15af"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>state</b></td></tr>
<tr class="separator:a50b7f921222452bf7328ad84d09c15af inherit pro_attribs_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bcf1b5c2a67b6409fea2e8705bcab57 inherit pro_attribs_class_debouncer"><td class="memItemLeft" align="right" valign="top"><a id="a1bcf1b5c2a67b6409fea2e8705bcab57"></a>
unsigned long&#160;</td><td class="memItemRight" valign="bottom"><b>stateChangeLastTime</b></td></tr>
<tr class="separator:ad5aa630c50e7b783bac50aad0385262e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="separator:a1bcf1b5c2a67b6409fea2e8705bcab57 inherit pro_attribs_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbe8de6a1cfff329629e9136a4efea6c inherit pro_attribs_class_debouncer"><td class="memItemLeft" align="right" valign="top"><a id="adbe8de6a1cfff329629e9136a4efea6c"></a>
unsigned long&#160;</td><td class="memItemRight" valign="bottom"><b>durationOfPreviousState</b></td></tr>
<tr class="separator:adbe8de6a1cfff329629e9136a4efea6c inherit pro_attribs_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The <a class="el" href="class_bounce.html">Bounce</a> class. </p>
<div class="textblock"><p>The <a class="el" href="class_debouncer.html" title="The Debouce class. Just the deboucing code separated from all harware. ">Debouncer</a>:<a class="el" href="class_bounce.html" title="The Debouncer:Bounce class. Links the Deboucing class to a hardware pin. ">Bounce</a> class. Links the Deboucing class to a hardware pin. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="aa62a2e2b5ad0ee6913a95f2f2a0e7606"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa62a2e2b5ad0ee6913a95f2f2a0e7606">&#9670;&nbsp;</a></span>Bounce()</h2>
@@ -158,7 +189,7 @@ unsigned long&#160;</td><td class="memItemRight" valign="bottom"><b>stateChangeL
</table>
</div><div class="memdoc">
<p>Create an instance of the <a class="el" href="class_bounce.html">Bounce</a> class. </p>
<p>Create an instance of the <a class="el" href="class_bounce.html" title="The Debouncer:Bounce class. Links the Deboucing class to a hardware pin. ">Bounce</a> class. </p>
<div class="fragment"><div class="line"><span class="comment">// Create an instance of the Bounce class.</span></div><div class="line"><a class="code" href="class_bounce.html#aa62a2e2b5ad0ee6913a95f2f2a0e7606">Bounce</a>() button;</div></div><!-- fragment -->
</div>
</div>
@@ -197,7 +228,6 @@ unsigned long&#160;</td><td class="memItemRight" valign="bottom"><b>stateChangeL
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the event read was successful, otherwise false. </dd></dl>
</div>
</div>
@@ -218,94 +248,6 @@ unsigned long&#160;</td><td class="memItemRight" valign="bottom"><b>stateChangeL
</div><div class="memdoc">
<p>Attach to a pin for advanced users. Only attach the pin this way once you have previously set it up. Otherwise use <a class="el" href="class_bounce.html#aba08e592941465d033e3eba3dde66eaf" title="Attach to a pin and sets that pin&#39;s mode (INPUT, INPUT_PULLUP or OUTPUT). ">attach(int pin, int mode)</a>. </p>
</div>
</div>
<a id="a62412d814d36102ab3d285e801d5d29a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62412d814d36102ab3d285e801d5d29a">&#9670;&nbsp;</a></span>duration()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned long Bounce::duration </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the duration in milliseconds of the current state. </p>
<p>Is reset to 0 once the pin rises ( <a class="el" href="class_bounce.html#a9e4187934576e568cdfa8f94efeff6f2" title="Returns true if pin signal transitions from low to high. ">rose()</a> ) or falls ( <a class="el" href="class_bounce.html#abfbb0910f5b1ec4e25315cff26dd6289" title="Returns true if pin signal transitions from high to low. ">fell()</a> ).</p>
<dl class="section return"><dt>Returns</dt><dd>The duration in milliseconds (unsigned long) of the current state. </dd></dl>
</div>
</div>
<a id="a2c6e68bf749497c597a9437b488b3d7c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c6e68bf749497c597a9437b488b3d7c">&#9670;&nbsp;</a></span>interval()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Bounce::interval </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>interval_millis</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the debounce interval in milliseconds. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">interval_millis</td><td>The interval time in milliseconds. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ae1936fdf44501992707e6cbaee9bbc76"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae1936fdf44501992707e6cbaee9bbc76">&#9670;&nbsp;</a></span>read()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool Bounce::read </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the pin's state (HIGH or LOW). </p>
<dl class="section return"><dt>Returns</dt><dd>HIGH or LOW. </dd></dl>
</div>
</div>
<a id="ab36d7b83bf32e0935a0c2c6a05096441"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab36d7b83bf32e0935a0c2c6a05096441">&#9670;&nbsp;</a></span>update()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool Bounce::update </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Updates the pin's state. </p>
<p>Because <a class="el" href="class_bounce.html">Bounce</a> does not use interrupts, you have to "update" the object before reading its value and it has to be done as often as possible (that means to include it in your loop()). Only call <a class="el" href="class_bounce.html#ab36d7b83bf32e0935a0c2c6a05096441" title="Updates the pin&#39;s state. ">update()</a> once per loop().</p>
<dl class="section return"><dt>Returns</dt><dd>True if the pin changed state. </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
Binary file not shown.

After

Width:  |  Height:  |  Size: 522 B

+105
View File
@@ -0,0 +1,105 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Bounce2: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Bounce2
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">Button Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="class_button.html">Button</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="class_bounce.html#aba08e592941465d033e3eba3dde66eaf">attach</a>(int pin, int mode)</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="class_bounce.html#a163477dbcbaf1a3dee6cb3b62eedf09e">attach</a>(int pin)</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>begin</b>() (defined in <a class="el" href="class_debouncer.html">Debouncer</a>)</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr><td class="entry"><a class="el" href="class_bounce.html#aa62a2e2b5ad0ee6913a95f2f2a0e7606">Bounce</a>()</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Bounce</b>(uint8_t pin, unsigned long interval_millis) (defined in <a class="el" href="class_bounce.html">Bounce</a>)</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_button.html#a3b36df1ae23c58aedb9e15a713159459">Button</a>()</td><td class="entry"><a class="el" href="class_button.html">Button</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_debouncer.html#a47c83f13a03920d21fbfafd8469ec06b">changed</a>()</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_debouncer.html#a34c46ca04d4178933cc0049436d10fe6">Debouncer</a>()</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_debouncer.html#a462994f1f9a20876b2ee239eeee97448">duration</a>()</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>durationOfPreviousState</b> (defined in <a class="el" href="class_debouncer.html">Debouncer</a>)</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_bounce.html#ac756559419bfa1c5060e5e4a4ad6406f">fallingEdge</a>()</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_debouncer.html#a1ef5a04b4ebe97352ff3bb227476035c">fell</a>()</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_debouncer.html#a930bf3945e698d77b889f6309079857d">interval</a>(uint16_t interval_millis)</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>interval_millis</b> (defined in <a class="el" href="class_debouncer.html">Debouncer</a>)</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_bounce.html#a1cb79cb0ba2379cd12cc7c098d97053a">pin</a></td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr><td class="entry"><a class="el" href="class_button.html#a8e37fb754907685539ea71183204b033">pressed</a>()</td><td class="entry"><a class="el" href="class_button.html">Button</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>previous_millis</b> (defined in <a class="el" href="class_debouncer.html">Debouncer</a>)</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr><td class="entry"><a class="el" href="class_debouncer.html#a89ab95e7ac24874bb8cb684dc36a98b9">previousDuration</a>()</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_debouncer.html#a2cae68910c19c778507f257842fc41bf">read</a>()</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>readCurrentState</b>() (defined in <a class="el" href="class_bounce.html">Bounce</a>)</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_button.html#a0b3d2033eb8a6e93141e0b2d8375e9dd">released</a>()</td><td class="entry"><a class="el" href="class_button.html">Button</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_bounce.html#a3417beb80eb6593d768c2e9884c57aa0">risingEdge</a>()</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_debouncer.html#a9990de6fa7256842c35c246d7dea8dbb">rose</a>()</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>setPinMode</b>(int pin, int mode) (defined in <a class="el" href="class_bounce.html">Bounce</a>)</td><td class="entry"><a class="el" href="class_bounce.html">Bounce</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_button.html#aa58da793c244339b781349cf9af544d5">setPressedState</a>(bool state)</td><td class="entry"><a class="el" href="class_button.html">Button</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>state</b> (defined in <a class="el" href="class_debouncer.html">Debouncer</a>)</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>stateChangeLastTime</b> (defined in <a class="el" href="class_debouncer.html">Debouncer</a>)</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>stateForPressed</b> (defined in <a class="el" href="class_button.html">Button</a>)</td><td class="entry"><a class="el" href="class_button.html">Button</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_debouncer.html#a72f3e8d483555031d2ac21b0b7702c06">update</a>()</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>
+269
View File
@@ -0,0 +1,269 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Bounce2: Button Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Bounce2
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="class_button-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">Button Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>The Debouncer:Bounce:<a class="el" href="class_button.html" title="The Debouncer:Bounce:Button class. The Button class matches an electrical state to a physical action...">Button</a> class. The <a class="el" href="class_button.html" title="The Debouncer:Bounce:Button class. The Button class matches an electrical state to a physical action...">Button</a> class matches an electrical state to a physical action.
<a href="class_button.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_bounce2_8h_source.html">Bounce2.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Button:</div>
<div class="dyncontent">
<div class="center">
<img src="class_button.png" usemap="#Button_map" alt=""/>
<map id="Button_map" name="Button_map">
<area href="class_bounce.html" title="The Debouncer:Bounce class. Links the Deboucing class to a hardware pin. " alt="Bounce" shape="rect" coords="0,56,75,80"/>
<area href="class_debouncer.html" title="The Debouce class. Just the deboucing code separated from all harware. " alt="Debouncer" shape="rect" coords="0,0,75,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a3b36df1ae23c58aedb9e15a713159459"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_button.html#a3b36df1ae23c58aedb9e15a713159459">Button</a> ()</td></tr>
<tr class="memdesc:a3b36df1ae23c58aedb9e15a713159459"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an instance of the <a class="el" href="class_button.html" title="The Debouncer:Bounce:Button class. The Button class matches an electrical state to a physical action...">Button</a> class. By default, the pressed state is matched to a HIGH electrical level. <a href="#a3b36df1ae23c58aedb9e15a713159459">More...</a><br /></td></tr>
<tr class="separator:a3b36df1ae23c58aedb9e15a713159459"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa58da793c244339b781349cf9af544d5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_button.html#aa58da793c244339b781349cf9af544d5">setPressedState</a> (bool state)</td></tr>
<tr class="memdesc:aa58da793c244339b781349cf9af544d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the electrical state (HIGH/LOW) that corresponds to a physical press. By default, the pressed state is matched to a HIGH electrical level. <a href="#aa58da793c244339b781349cf9af544d5">More...</a><br /></td></tr>
<tr class="separator:aa58da793c244339b781349cf9af544d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e37fb754907685539ea71183204b033"><td class="memItemLeft" align="right" valign="top"><a id="a8e37fb754907685539ea71183204b033"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_button.html#a8e37fb754907685539ea71183204b033">pressed</a> ()</td></tr>
<tr class="memdesc:a8e37fb754907685539ea71183204b033"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the button was physically pressed. <br /></td></tr>
<tr class="separator:a8e37fb754907685539ea71183204b033"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b3d2033eb8a6e93141e0b2d8375e9dd"><td class="memItemLeft" align="right" valign="top"><a id="a0b3d2033eb8a6e93141e0b2d8375e9dd"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_button.html#a0b3d2033eb8a6e93141e0b2d8375e9dd">released</a> ()</td></tr>
<tr class="memdesc:a0b3d2033eb8a6e93141e0b2d8375e9dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the button was physically released. <br /></td></tr>
<tr class="separator:a0b3d2033eb8a6e93141e0b2d8375e9dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_bounce"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_bounce')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_bounce.html">Bounce</a></td></tr>
<tr class="memitem:aa62a2e2b5ad0ee6913a95f2f2a0e7606 inherit pub_methods_class_bounce"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bounce.html#aa62a2e2b5ad0ee6913a95f2f2a0e7606">Bounce</a> ()</td></tr>
<tr class="memdesc:aa62a2e2b5ad0ee6913a95f2f2a0e7606 inherit pub_methods_class_bounce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an instance of the <a class="el" href="class_bounce.html" title="The Debouncer:Bounce class. Links the Deboucing class to a hardware pin. ">Bounce</a> class. <a href="class_bounce.html#aa62a2e2b5ad0ee6913a95f2f2a0e7606">More...</a><br /></td></tr>
<tr class="separator:aa62a2e2b5ad0ee6913a95f2f2a0e7606 inherit pub_methods_class_bounce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba08e592941465d033e3eba3dde66eaf inherit pub_methods_class_bounce"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bounce.html#aba08e592941465d033e3eba3dde66eaf">attach</a> (int <a class="el" href="class_bounce.html#a1cb79cb0ba2379cd12cc7c098d97053a">pin</a>, int mode)</td></tr>
<tr class="memdesc:aba08e592941465d033e3eba3dde66eaf inherit pub_methods_class_bounce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attach to a pin and sets that pin's mode (INPUT, INPUT_PULLUP or OUTPUT). <a href="class_bounce.html#aba08e592941465d033e3eba3dde66eaf">More...</a><br /></td></tr>
<tr class="separator:aba08e592941465d033e3eba3dde66eaf inherit pub_methods_class_bounce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a163477dbcbaf1a3dee6cb3b62eedf09e inherit pub_methods_class_bounce"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bounce.html#a163477dbcbaf1a3dee6cb3b62eedf09e">attach</a> (int <a class="el" href="class_bounce.html#a1cb79cb0ba2379cd12cc7c098d97053a">pin</a>)</td></tr>
<tr class="separator:a163477dbcbaf1a3dee6cb3b62eedf09e inherit pub_methods_class_bounce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab34517094faf21d4f38b36da2915132b inherit pub_methods_class_bounce"><td class="memItemLeft" align="right" valign="top"><a id="ab34517094faf21d4f38b36da2915132b"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>Bounce</b> (uint8_t <a class="el" href="class_bounce.html#a1cb79cb0ba2379cd12cc7c098d97053a">pin</a>, unsigned long interval_millis)</td></tr>
<tr class="separator:ab34517094faf21d4f38b36da2915132b inherit pub_methods_class_bounce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3417beb80eb6593d768c2e9884c57aa0 inherit pub_methods_class_bounce"><td class="memItemLeft" align="right" valign="top"><a id="a3417beb80eb6593d768c2e9884c57aa0"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bounce.html#a3417beb80eb6593d768c2e9884c57aa0">risingEdge</a> ()</td></tr>
<tr class="memdesc:a3417beb80eb6593d768c2e9884c57aa0 inherit pub_methods_class_bounce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deprecated (i.e. do not use). Included for partial compatibility for programs written with <a class="el" href="class_bounce.html" title="The Debouncer:Bounce class. Links the Deboucing class to a hardware pin. ">Bounce</a> version 1. <br /></td></tr>
<tr class="separator:a3417beb80eb6593d768c2e9884c57aa0 inherit pub_methods_class_bounce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac756559419bfa1c5060e5e4a4ad6406f inherit pub_methods_class_bounce"><td class="memItemLeft" align="right" valign="top"><a id="ac756559419bfa1c5060e5e4a4ad6406f"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bounce.html#ac756559419bfa1c5060e5e4a4ad6406f">fallingEdge</a> ()</td></tr>
<tr class="memdesc:ac756559419bfa1c5060e5e4a4ad6406f inherit pub_methods_class_bounce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deprecated (i.e. do not use). Included for partial compatibility for programs written with <a class="el" href="class_bounce.html" title="The Debouncer:Bounce class. Links the Deboucing class to a hardware pin. ">Bounce</a> version 1. <br /></td></tr>
<tr class="separator:ac756559419bfa1c5060e5e4a4ad6406f inherit pub_methods_class_bounce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_debouncer"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_debouncer')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_debouncer.html">Debouncer</a></td></tr>
<tr class="memitem:a34c46ca04d4178933cc0049436d10fe6 inherit pub_methods_class_debouncer"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_debouncer.html#a34c46ca04d4178933cc0049436d10fe6">Debouncer</a> ()</td></tr>
<tr class="memdesc:a34c46ca04d4178933cc0049436d10fe6 inherit pub_methods_class_debouncer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an instance of the Debounce class. <a href="class_debouncer.html#a34c46ca04d4178933cc0049436d10fe6">More...</a><br /></td></tr>
<tr class="separator:a34c46ca04d4178933cc0049436d10fe6 inherit pub_methods_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a930bf3945e698d77b889f6309079857d inherit pub_methods_class_debouncer"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_debouncer.html#a930bf3945e698d77b889f6309079857d">interval</a> (uint16_t interval_millis)</td></tr>
<tr class="memdesc:a930bf3945e698d77b889f6309079857d inherit pub_methods_class_debouncer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the debounce interval in milliseconds. <a href="class_debouncer.html#a930bf3945e698d77b889f6309079857d">More...</a><br /></td></tr>
<tr class="separator:a930bf3945e698d77b889f6309079857d inherit pub_methods_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72f3e8d483555031d2ac21b0b7702c06 inherit pub_methods_class_debouncer"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_debouncer.html#a72f3e8d483555031d2ac21b0b7702c06">update</a> ()</td></tr>
<tr class="memdesc:a72f3e8d483555031d2ac21b0b7702c06 inherit pub_methods_class_debouncer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the pin's state. <a href="class_debouncer.html#a72f3e8d483555031d2ac21b0b7702c06">More...</a><br /></td></tr>
<tr class="separator:a72f3e8d483555031d2ac21b0b7702c06 inherit pub_methods_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2cae68910c19c778507f257842fc41bf inherit pub_methods_class_debouncer"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_debouncer.html#a2cae68910c19c778507f257842fc41bf">read</a> ()</td></tr>
<tr class="memdesc:a2cae68910c19c778507f257842fc41bf inherit pub_methods_class_debouncer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the pin's state (HIGH or LOW). <a href="class_debouncer.html#a2cae68910c19c778507f257842fc41bf">More...</a><br /></td></tr>
<tr class="separator:a2cae68910c19c778507f257842fc41bf inherit pub_methods_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ef5a04b4ebe97352ff3bb227476035c inherit pub_methods_class_debouncer"><td class="memItemLeft" align="right" valign="top"><a id="a1ef5a04b4ebe97352ff3bb227476035c"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_debouncer.html#a1ef5a04b4ebe97352ff3bb227476035c">fell</a> ()</td></tr>
<tr class="memdesc:a1ef5a04b4ebe97352ff3bb227476035c inherit pub_methods_class_debouncer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if pin signal transitions from high to low. <br /></td></tr>
<tr class="separator:a1ef5a04b4ebe97352ff3bb227476035c inherit pub_methods_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9990de6fa7256842c35c246d7dea8dbb inherit pub_methods_class_debouncer"><td class="memItemLeft" align="right" valign="top"><a id="a9990de6fa7256842c35c246d7dea8dbb"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_debouncer.html#a9990de6fa7256842c35c246d7dea8dbb">rose</a> ()</td></tr>
<tr class="memdesc:a9990de6fa7256842c35c246d7dea8dbb inherit pub_methods_class_debouncer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if pin signal transitions from low to high. <br /></td></tr>
<tr class="separator:a9990de6fa7256842c35c246d7dea8dbb inherit pub_methods_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47c83f13a03920d21fbfafd8469ec06b inherit pub_methods_class_debouncer"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_debouncer.html#a47c83f13a03920d21fbfafd8469ec06b">changed</a> ()</td></tr>
<tr class="memdesc:a47c83f13a03920d21fbfafd8469ec06b inherit pub_methods_class_debouncer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the state changed on last update. <a href="class_debouncer.html#a47c83f13a03920d21fbfafd8469ec06b">More...</a><br /></td></tr>
<tr class="separator:a47c83f13a03920d21fbfafd8469ec06b inherit pub_methods_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a462994f1f9a20876b2ee239eeee97448 inherit pub_methods_class_debouncer"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_debouncer.html#a462994f1f9a20876b2ee239eeee97448">duration</a> ()</td></tr>
<tr class="memdesc:a462994f1f9a20876b2ee239eeee97448 inherit pub_methods_class_debouncer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the duration in milliseconds of the current state. <a href="class_debouncer.html#a462994f1f9a20876b2ee239eeee97448">More...</a><br /></td></tr>
<tr class="separator:a462994f1f9a20876b2ee239eeee97448 inherit pub_methods_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89ab95e7ac24874bb8cb684dc36a98b9 inherit pub_methods_class_debouncer"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_debouncer.html#a89ab95e7ac24874bb8cb684dc36a98b9">previousDuration</a> ()</td></tr>
<tr class="memdesc:a89ab95e7ac24874bb8cb684dc36a98b9 inherit pub_methods_class_debouncer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the duration in milliseconds of the previous state. <a href="class_debouncer.html#a89ab95e7ac24874bb8cb684dc36a98b9">More...</a><br /></td></tr>
<tr class="separator:a89ab95e7ac24874bb8cb684dc36a98b9 inherit pub_methods_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:ac7dd76476b2b7b40950c05925093247d"><td class="memItemLeft" align="right" valign="top"><a id="ac7dd76476b2b7b40950c05925093247d"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>stateForPressed</b> = 1</td></tr>
<tr class="separator:ac7dd76476b2b7b40950c05925093247d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_class_bounce"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_class_bounce')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="class_bounce.html">Bounce</a></td></tr>
<tr class="memitem:a1cb79cb0ba2379cd12cc7c098d97053a inherit pro_attribs_class_bounce"><td class="memItemLeft" align="right" valign="top"><a id="a1cb79cb0ba2379cd12cc7c098d97053a"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bounce.html#a1cb79cb0ba2379cd12cc7c098d97053a">pin</a></td></tr>
<tr class="memdesc:a1cb79cb0ba2379cd12cc7c098d97053a inherit pro_attribs_class_bounce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deprecated (i.e. do not use). Included for partial compatibility for programs written with <a class="el" href="class_bounce.html" title="The Debouncer:Bounce class. Links the Deboucing class to a hardware pin. ">Bounce</a> version 1. <br /></td></tr>
<tr class="separator:a1cb79cb0ba2379cd12cc7c098d97053a inherit pro_attribs_class_bounce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_class_debouncer"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_class_debouncer')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="class_debouncer.html">Debouncer</a></td></tr>
<tr class="memitem:afab369aec42a15595ebac695a088cccd inherit pro_attribs_class_debouncer"><td class="memItemLeft" align="right" valign="top"><a id="afab369aec42a15595ebac695a088cccd"></a>
unsigned long&#160;</td><td class="memItemRight" valign="bottom"><b>previous_millis</b></td></tr>
<tr class="separator:afab369aec42a15595ebac695a088cccd inherit pro_attribs_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25f000f08b3291f80154ec620abfe52a inherit pro_attribs_class_debouncer"><td class="memItemLeft" align="right" valign="top"><a id="a25f000f08b3291f80154ec620abfe52a"></a>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>interval_millis</b></td></tr>
<tr class="separator:a25f000f08b3291f80154ec620abfe52a inherit pro_attribs_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50b7f921222452bf7328ad84d09c15af inherit pro_attribs_class_debouncer"><td class="memItemLeft" align="right" valign="top"><a id="a50b7f921222452bf7328ad84d09c15af"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>state</b></td></tr>
<tr class="separator:a50b7f921222452bf7328ad84d09c15af inherit pro_attribs_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bcf1b5c2a67b6409fea2e8705bcab57 inherit pro_attribs_class_debouncer"><td class="memItemLeft" align="right" valign="top"><a id="a1bcf1b5c2a67b6409fea2e8705bcab57"></a>
unsigned long&#160;</td><td class="memItemRight" valign="bottom"><b>stateChangeLastTime</b></td></tr>
<tr class="separator:a1bcf1b5c2a67b6409fea2e8705bcab57 inherit pro_attribs_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbe8de6a1cfff329629e9136a4efea6c inherit pro_attribs_class_debouncer"><td class="memItemLeft" align="right" valign="top"><a id="adbe8de6a1cfff329629e9136a4efea6c"></a>
unsigned long&#160;</td><td class="memItemRight" valign="bottom"><b>durationOfPreviousState</b></td></tr>
<tr class="separator:adbe8de6a1cfff329629e9136a4efea6c inherit pro_attribs_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_methods_class_bounce"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_bounce')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_bounce.html">Bounce</a></td></tr>
<tr class="memitem:ad6efc6dd65035de20f015cc44be37873 inherit pro_methods_class_bounce"><td class="memItemLeft" align="right" valign="top"><a id="ad6efc6dd65035de20f015cc44be37873"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>readCurrentState</b> ()</td></tr>
<tr class="separator:ad6efc6dd65035de20f015cc44be37873 inherit pro_methods_class_bounce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a231a992bf2a1f4521043068e35eb50a6 inherit pro_methods_class_bounce"><td class="memItemLeft" align="right" valign="top"><a id="a231a992bf2a1f4521043068e35eb50a6"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>setPinMode</b> (int <a class="el" href="class_bounce.html#a1cb79cb0ba2379cd12cc7c098d97053a">pin</a>, int mode)</td></tr>
<tr class="separator:a231a992bf2a1f4521043068e35eb50a6 inherit pro_methods_class_bounce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_class_debouncer"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_debouncer')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_debouncer.html">Debouncer</a></td></tr>
<tr class="memitem:a38f85f1c1819a5634d93565e0459117b inherit pro_methods_class_debouncer"><td class="memItemLeft" align="right" valign="top"><a id="a38f85f1c1819a5634d93565e0459117b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>begin</b> ()</td></tr>
<tr class="separator:a38f85f1c1819a5634d93565e0459117b inherit pro_methods_class_debouncer"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The Debouncer:Bounce:<a class="el" href="class_button.html" title="The Debouncer:Bounce:Button class. The Button class matches an electrical state to a physical action...">Button</a> class. The <a class="el" href="class_button.html" title="The Debouncer:Bounce:Button class. The Button class matches an electrical state to a physical action...">Button</a> class matches an electrical state to a physical action. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a3b36df1ae23c58aedb9e15a713159459"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3b36df1ae23c58aedb9e15a713159459">&#9670;&nbsp;</a></span>Button()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Button::Button </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Create an instance of the <a class="el" href="class_button.html" title="The Debouncer:Bounce:Button class. The Button class matches an electrical state to a physical action...">Button</a> class. By default, the pressed state is matched to a HIGH electrical level. </p>
<div class="fragment"><div class="line"><span class="comment">// Create an instance of the Button class.</span></div><div class="line"><a class="code" href="class_button.html#a3b36df1ae23c58aedb9e15a713159459">Button</a>() button;</div></div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aa58da793c244339b781349cf9af544d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa58da793c244339b781349cf9af544d5">&#9670;&nbsp;</a></span>setPressedState()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void Button::setPressedState </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>state</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the electrical state (HIGH/LOW) that corresponds to a physical press. By default, the pressed state is matched to a HIGH electrical level. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">state</td><td>The electrical state (HIGH/LOW) that corresponds to a physical press. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/<a class="el" href="_bounce2_8h_source.html">Bounce2.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 520 B

+92
View File
@@ -0,0 +1,92 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Bounce2: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Bounce2
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">Debouncer Member List</div> </div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="class_debouncer.html">Debouncer</a>, including all inherited members.</p>
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>begin</b>() (defined in <a class="el" href="class_debouncer.html">Debouncer</a>)</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr><td class="entry"><a class="el" href="class_debouncer.html#a47c83f13a03920d21fbfafd8469ec06b">changed</a>()</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_debouncer.html#a34c46ca04d4178933cc0049436d10fe6">Debouncer</a>()</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="class_debouncer.html#a462994f1f9a20876b2ee239eeee97448">duration</a>()</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>durationOfPreviousState</b> (defined in <a class="el" href="class_debouncer.html">Debouncer</a>)</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr><td class="entry"><a class="el" href="class_debouncer.html#a1ef5a04b4ebe97352ff3bb227476035c">fell</a>()</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_debouncer.html#a930bf3945e698d77b889f6309079857d">interval</a>(uint16_t interval_millis)</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>interval_millis</b> (defined in <a class="el" href="class_debouncer.html">Debouncer</a>)</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>previous_millis</b> (defined in <a class="el" href="class_debouncer.html">Debouncer</a>)</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr><td class="entry"><a class="el" href="class_debouncer.html#a89ab95e7ac24874bb8cb684dc36a98b9">previousDuration</a>()</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_debouncer.html#a2cae68910c19c778507f257842fc41bf">read</a>()</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>readCurrentState</b>()=0 (defined in <a class="el" href="class_debouncer.html">Debouncer</a>)</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_debouncer.html#a9990de6fa7256842c35c246d7dea8dbb">rose</a>()</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>state</b> (defined in <a class="el" href="class_debouncer.html">Debouncer</a>)</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>stateChangeLastTime</b> (defined in <a class="el" href="class_debouncer.html">Debouncer</a>)</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr><td class="entry"><a class="el" href="class_debouncer.html#a72f3e8d483555031d2ac21b0b7702c06">update</a>()</td><td class="entry"><a class="el" href="class_debouncer.html">Debouncer</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>
+317
View File
@@ -0,0 +1,317 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Bounce2: Debouncer Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Bounce2
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="class_debouncer-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">Debouncer Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p>The Debouce class. Just the deboucing code separated from all harware.
<a href="class_debouncer.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_bounce2_8h_source.html">Bounce2.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Debouncer:</div>
<div class="dyncontent">
<div class="center">
<img src="class_debouncer.png" usemap="#Debouncer_map" alt=""/>
<map id="Debouncer_map" name="Debouncer_map">
<area href="class_bounce.html" title="The Debouncer:Bounce class. Links the Deboucing class to a hardware pin. " alt="Bounce" shape="rect" coords="0,56,75,80"/>
<area href="class_button.html" title="The Debouncer:Bounce:Button class. The Button class matches an electrical state to a physical action..." alt="Button" shape="rect" coords="0,112,75,136"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a34c46ca04d4178933cc0049436d10fe6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_debouncer.html#a34c46ca04d4178933cc0049436d10fe6">Debouncer</a> ()</td></tr>
<tr class="memdesc:a34c46ca04d4178933cc0049436d10fe6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an instance of the Debounce class. <a href="#a34c46ca04d4178933cc0049436d10fe6">More...</a><br /></td></tr>
<tr class="separator:a34c46ca04d4178933cc0049436d10fe6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a930bf3945e698d77b889f6309079857d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_debouncer.html#a930bf3945e698d77b889f6309079857d">interval</a> (uint16_t interval_millis)</td></tr>
<tr class="memdesc:a930bf3945e698d77b889f6309079857d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the debounce interval in milliseconds. <a href="#a930bf3945e698d77b889f6309079857d">More...</a><br /></td></tr>
<tr class="separator:a930bf3945e698d77b889f6309079857d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72f3e8d483555031d2ac21b0b7702c06"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_debouncer.html#a72f3e8d483555031d2ac21b0b7702c06">update</a> ()</td></tr>
<tr class="memdesc:a72f3e8d483555031d2ac21b0b7702c06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the pin's state. <a href="#a72f3e8d483555031d2ac21b0b7702c06">More...</a><br /></td></tr>
<tr class="separator:a72f3e8d483555031d2ac21b0b7702c06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2cae68910c19c778507f257842fc41bf"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_debouncer.html#a2cae68910c19c778507f257842fc41bf">read</a> ()</td></tr>
<tr class="memdesc:a2cae68910c19c778507f257842fc41bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the pin's state (HIGH or LOW). <a href="#a2cae68910c19c778507f257842fc41bf">More...</a><br /></td></tr>
<tr class="separator:a2cae68910c19c778507f257842fc41bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ef5a04b4ebe97352ff3bb227476035c"><td class="memItemLeft" align="right" valign="top"><a id="a1ef5a04b4ebe97352ff3bb227476035c"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_debouncer.html#a1ef5a04b4ebe97352ff3bb227476035c">fell</a> ()</td></tr>
<tr class="memdesc:a1ef5a04b4ebe97352ff3bb227476035c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if pin signal transitions from high to low. <br /></td></tr>
<tr class="separator:a1ef5a04b4ebe97352ff3bb227476035c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9990de6fa7256842c35c246d7dea8dbb"><td class="memItemLeft" align="right" valign="top"><a id="a9990de6fa7256842c35c246d7dea8dbb"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_debouncer.html#a9990de6fa7256842c35c246d7dea8dbb">rose</a> ()</td></tr>
<tr class="memdesc:a9990de6fa7256842c35c246d7dea8dbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if pin signal transitions from low to high. <br /></td></tr>
<tr class="separator:a9990de6fa7256842c35c246d7dea8dbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47c83f13a03920d21fbfafd8469ec06b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_debouncer.html#a47c83f13a03920d21fbfafd8469ec06b">changed</a> ()</td></tr>
<tr class="memdesc:a47c83f13a03920d21fbfafd8469ec06b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the state changed on last update. <a href="#a47c83f13a03920d21fbfafd8469ec06b">More...</a><br /></td></tr>
<tr class="separator:a47c83f13a03920d21fbfafd8469ec06b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a462994f1f9a20876b2ee239eeee97448"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_debouncer.html#a462994f1f9a20876b2ee239eeee97448">duration</a> ()</td></tr>
<tr class="memdesc:a462994f1f9a20876b2ee239eeee97448"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the duration in milliseconds of the current state. <a href="#a462994f1f9a20876b2ee239eeee97448">More...</a><br /></td></tr>
<tr class="separator:a462994f1f9a20876b2ee239eeee97448"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89ab95e7ac24874bb8cb684dc36a98b9"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_debouncer.html#a89ab95e7ac24874bb8cb684dc36a98b9">previousDuration</a> ()</td></tr>
<tr class="memdesc:a89ab95e7ac24874bb8cb684dc36a98b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the duration in milliseconds of the previous state. <a href="#a89ab95e7ac24874bb8cb684dc36a98b9">More...</a><br /></td></tr>
<tr class="separator:a89ab95e7ac24874bb8cb684dc36a98b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a38f85f1c1819a5634d93565e0459117b"><td class="memItemLeft" align="right" valign="top"><a id="a38f85f1c1819a5634d93565e0459117b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>begin</b> ()</td></tr>
<tr class="separator:a38f85f1c1819a5634d93565e0459117b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a377599ec41b901d6a291809c60eb4f"><td class="memItemLeft" align="right" valign="top"><a id="a4a377599ec41b901d6a291809c60eb4f"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>readCurrentState</b> ()=0</td></tr>
<tr class="separator:a4a377599ec41b901d6a291809c60eb4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:afab369aec42a15595ebac695a088cccd"><td class="memItemLeft" align="right" valign="top"><a id="afab369aec42a15595ebac695a088cccd"></a>
unsigned long&#160;</td><td class="memItemRight" valign="bottom"><b>previous_millis</b></td></tr>
<tr class="separator:afab369aec42a15595ebac695a088cccd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25f000f08b3291f80154ec620abfe52a"><td class="memItemLeft" align="right" valign="top"><a id="a25f000f08b3291f80154ec620abfe52a"></a>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>interval_millis</b></td></tr>
<tr class="separator:a25f000f08b3291f80154ec620abfe52a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50b7f921222452bf7328ad84d09c15af"><td class="memItemLeft" align="right" valign="top"><a id="a50b7f921222452bf7328ad84d09c15af"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>state</b></td></tr>
<tr class="separator:a50b7f921222452bf7328ad84d09c15af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bcf1b5c2a67b6409fea2e8705bcab57"><td class="memItemLeft" align="right" valign="top"><a id="a1bcf1b5c2a67b6409fea2e8705bcab57"></a>
unsigned long&#160;</td><td class="memItemRight" valign="bottom"><b>stateChangeLastTime</b></td></tr>
<tr class="separator:a1bcf1b5c2a67b6409fea2e8705bcab57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbe8de6a1cfff329629e9136a4efea6c"><td class="memItemLeft" align="right" valign="top"><a id="adbe8de6a1cfff329629e9136a4efea6c"></a>
unsigned long&#160;</td><td class="memItemRight" valign="bottom"><b>durationOfPreviousState</b></td></tr>
<tr class="separator:adbe8de6a1cfff329629e9136a4efea6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The Debouce class. Just the deboucing code separated from all harware. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a34c46ca04d4178933cc0049436d10fe6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34c46ca04d4178933cc0049436d10fe6">&#9670;&nbsp;</a></span>Debouncer()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">Debouncer::Debouncer </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create an instance of the Debounce class. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a47c83f13a03920d21fbfafd8469ec06b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a47c83f13a03920d21fbfafd8469ec06b">&#9670;&nbsp;</a></span>changed()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool Debouncer::changed </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if the state changed on last update. </p>
<dl class="section return"><dt>Returns</dt><dd>True if the state changed on last update. Otherwise, returns false. </dd></dl>
</div>
</div>
<a id="a462994f1f9a20876b2ee239eeee97448"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a462994f1f9a20876b2ee239eeee97448">&#9670;&nbsp;</a></span>duration()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned long Debouncer::duration </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the duration in milliseconds of the current state. </p>
<p>Is reset to 0 once the pin rises ( <a class="el" href="class_debouncer.html#a9990de6fa7256842c35c246d7dea8dbb" title="Returns true if pin signal transitions from low to high. ">rose()</a> ) or falls ( <a class="el" href="class_debouncer.html#a1ef5a04b4ebe97352ff3bb227476035c" title="Returns true if pin signal transitions from high to low. ">fell()</a> ).</p>
<dl class="section return"><dt>Returns</dt><dd>The duration in milliseconds (unsigned long) of the current state. </dd></dl>
</div>
</div>
<a id="a930bf3945e698d77b889f6309079857d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a930bf3945e698d77b889f6309079857d">&#9670;&nbsp;</a></span>interval()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Debouncer::interval </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>interval_millis</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the debounce interval in milliseconds. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">interval_millis</td><td>The interval time in milliseconds. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a89ab95e7ac24874bb8cb684dc36a98b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a89ab95e7ac24874bb8cb684dc36a98b9">&#9670;&nbsp;</a></span>previousDuration()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned long Debouncer::previousDuration </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the duration in milliseconds of the previous state. </p>
<p>Takes the values of <a class="el" href="class_debouncer.html#a462994f1f9a20876b2ee239eeee97448" title="Returns the duration in milliseconds of the current state. ">duration()</a> once the pin changes state.</p>
<dl class="section return"><dt>Returns</dt><dd>The duration in milliseconds (unsigned long) of the previous state. </dd></dl>
</div>
</div>
<a id="a2cae68910c19c778507f257842fc41bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2cae68910c19c778507f257842fc41bf">&#9670;&nbsp;</a></span>read()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool Debouncer::read </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the pin's state (HIGH or LOW). </p>
<dl class="section return"><dt>Returns</dt><dd>HIGH or LOW. </dd></dl>
</div>
</div>
<a id="a72f3e8d483555031d2ac21b0b7702c06"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a72f3e8d483555031d2ac21b0b7702c06">&#9670;&nbsp;</a></span>update()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool Debouncer::update </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Updates the pin's state. </p>
<p>Because <a class="el" href="class_bounce.html" title="The Debouncer:Bounce class. Links the Deboucing class to a hardware pin. ">Bounce</a> does not use interrupts, you have to "update" the object before reading its value and it has to be done as often as possible (that means to include it in your loop()). Only call <a class="el" href="class_debouncer.html#a72f3e8d483555031d2ac21b0b7702c06" title="Updates the pin&#39;s state. ">update()</a> once per loop().</p>
<dl class="section return"><dt>Returns</dt><dd>True if the pin changed state. </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>src/<a class="el" href="_bounce2_8h_source.html">Bounce2.h</a></li>
<li>src/Bounce2.cpp</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 528 B

+6 -4
View File
@@ -62,15 +62,17 @@ $(function() {
<div class="title">Class Index</div> </div>
</div><!--header-->
<div class="contents">
<div class="qindex"><a class="qindex" href="#letter_b">b</a></div>
<div class="qindex"><a class="qindex" href="#letter_b">b</a>&#160;|&#160;<a class="qindex" href="#letter_d">d</a></div>
<table class="classindex">
<tr><td rowspan="2" valign="bottom"><a name="letter_b"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;b&#160;&#160;</div></td></tr></table>
</td><td valign="top"><a class="el" href="class_button.html">Button</a>&#160;&#160;&#160;</td><td></td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_d"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;d&#160;&#160;</div></td></tr></table>
</td><td></td></tr>
<tr><td></td></tr>
<tr><td valign="top"><a class="el" href="class_bounce.html">Bounce</a>&#160;&#160;&#160;</td><td></td></tr>
<tr><td></td><td></td></tr>
<tr><td></td><td valign="top"><a class="el" href="class_debouncer.html">Debouncer</a>&#160;&#160;&#160;</td><td></td></tr>
<tr><td></td><td></td><td></td></tr>
</table>
<div class="qindex"><a class="qindex" href="#letter_b">b</a></div>
<div class="qindex"><a class="qindex" href="#letter_b">b</a>&#160;|&#160;<a class="qindex" href="#letter_d">d</a></div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
+30 -6
View File
@@ -65,29 +65,53 @@ $(function() {
<li>Bounce()
: <a class="el" href="class_bounce.html#aa62a2e2b5ad0ee6913a95f2f2a0e7606">Bounce</a>
</li>
<li>Button()
: <a class="el" href="class_button.html#a3b36df1ae23c58aedb9e15a713159459">Button</a>
</li>
<li>changed()
: <a class="el" href="class_debouncer.html#a47c83f13a03920d21fbfafd8469ec06b">Debouncer</a>
</li>
<li>Debouncer()
: <a class="el" href="class_debouncer.html#a34c46ca04d4178933cc0049436d10fe6">Debouncer</a>
</li>
<li>duration()
: <a class="el" href="class_bounce.html#a62412d814d36102ab3d285e801d5d29a">Bounce</a>
: <a class="el" href="class_debouncer.html#a462994f1f9a20876b2ee239eeee97448">Debouncer</a>
</li>
<li>fallingEdge()
: <a class="el" href="class_bounce.html#ac756559419bfa1c5060e5e4a4ad6406f">Bounce</a>
</li>
<li>fell()
: <a class="el" href="class_bounce.html#abfbb0910f5b1ec4e25315cff26dd6289">Bounce</a>
: <a class="el" href="class_debouncer.html#a1ef5a04b4ebe97352ff3bb227476035c">Debouncer</a>
</li>
<li>interval()
: <a class="el" href="class_bounce.html#a2c6e68bf749497c597a9437b488b3d7c">Bounce</a>
: <a class="el" href="class_debouncer.html#a930bf3945e698d77b889f6309079857d">Debouncer</a>
</li>
<li>pin
: <a class="el" href="class_bounce.html#a1cb79cb0ba2379cd12cc7c098d97053a">Bounce</a>
</li>
<li>pressed()
: <a class="el" href="class_button.html#a8e37fb754907685539ea71183204b033">Button</a>
</li>
<li>previousDuration()
: <a class="el" href="class_debouncer.html#a89ab95e7ac24874bb8cb684dc36a98b9">Debouncer</a>
</li>
<li>read()
: <a class="el" href="class_bounce.html#ae1936fdf44501992707e6cbaee9bbc76">Bounce</a>
: <a class="el" href="class_debouncer.html#a2cae68910c19c778507f257842fc41bf">Debouncer</a>
</li>
<li>released()
: <a class="el" href="class_button.html#a0b3d2033eb8a6e93141e0b2d8375e9dd">Button</a>
</li>
<li>risingEdge()
: <a class="el" href="class_bounce.html#a3417beb80eb6593d768c2e9884c57aa0">Bounce</a>
</li>
<li>rose()
: <a class="el" href="class_bounce.html#a9e4187934576e568cdfa8f94efeff6f2">Bounce</a>
: <a class="el" href="class_debouncer.html#a9990de6fa7256842c35c246d7dea8dbb">Debouncer</a>
</li>
<li>setPressedState()
: <a class="el" href="class_button.html#aa58da793c244339b781349cf9af544d5">Button</a>
</li>
<li>update()
: <a class="el" href="class_bounce.html#ab36d7b83bf32e0935a0c2c6a05096441">Bounce</a>
: <a class="el" href="class_debouncer.html#a72f3e8d483555031d2ac21b0b7702c06">Debouncer</a>
</li>
</ul>
</div><!-- contents -->
+27 -6
View File
@@ -65,29 +65,50 @@ $(function() {
<li>Bounce()
: <a class="el" href="class_bounce.html#aa62a2e2b5ad0ee6913a95f2f2a0e7606">Bounce</a>
</li>
<li>Button()
: <a class="el" href="class_button.html#a3b36df1ae23c58aedb9e15a713159459">Button</a>
</li>
<li>changed()
: <a class="el" href="class_debouncer.html#a47c83f13a03920d21fbfafd8469ec06b">Debouncer</a>
</li>
<li>Debouncer()
: <a class="el" href="class_debouncer.html#a34c46ca04d4178933cc0049436d10fe6">Debouncer</a>
</li>
<li>duration()
: <a class="el" href="class_bounce.html#a62412d814d36102ab3d285e801d5d29a">Bounce</a>
: <a class="el" href="class_debouncer.html#a462994f1f9a20876b2ee239eeee97448">Debouncer</a>
</li>
<li>fallingEdge()
: <a class="el" href="class_bounce.html#ac756559419bfa1c5060e5e4a4ad6406f">Bounce</a>
</li>
<li>fell()
: <a class="el" href="class_bounce.html#abfbb0910f5b1ec4e25315cff26dd6289">Bounce</a>
: <a class="el" href="class_debouncer.html#a1ef5a04b4ebe97352ff3bb227476035c">Debouncer</a>
</li>
<li>interval()
: <a class="el" href="class_bounce.html#a2c6e68bf749497c597a9437b488b3d7c">Bounce</a>
: <a class="el" href="class_debouncer.html#a930bf3945e698d77b889f6309079857d">Debouncer</a>
</li>
<li>pressed()
: <a class="el" href="class_button.html#a8e37fb754907685539ea71183204b033">Button</a>
</li>
<li>previousDuration()
: <a class="el" href="class_debouncer.html#a89ab95e7ac24874bb8cb684dc36a98b9">Debouncer</a>
</li>
<li>read()
: <a class="el" href="class_bounce.html#ae1936fdf44501992707e6cbaee9bbc76">Bounce</a>
: <a class="el" href="class_debouncer.html#a2cae68910c19c778507f257842fc41bf">Debouncer</a>
</li>
<li>released()
: <a class="el" href="class_button.html#a0b3d2033eb8a6e93141e0b2d8375e9dd">Button</a>
</li>
<li>risingEdge()
: <a class="el" href="class_bounce.html#a3417beb80eb6593d768c2e9884c57aa0">Bounce</a>
</li>
<li>rose()
: <a class="el" href="class_bounce.html#a9e4187934576e568cdfa8f94efeff6f2">Bounce</a>
: <a class="el" href="class_debouncer.html#a9990de6fa7256842c35c246d7dea8dbb">Debouncer</a>
</li>
<li>setPressedState()
: <a class="el" href="class_button.html#aa58da793c244339b781349cf9af544d5">Button</a>
</li>
<li>update()
: <a class="el" href="class_bounce.html#ab36d7b83bf32e0935a0c2c6a05096441">Bounce</a>
: <a class="el" href="class_debouncer.html#a72f3e8d483555031d2ac21b0b7702c06">Debouncer</a>
</li>
</ul>
</div><!-- contents -->
+74
View File
@@ -0,0 +1,74 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Bounce2: Class Members - Variables</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Bounce2
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
&#160;<ul>
<li>pin
: <a class="el" href="class_bounce.html#a1cb79cb0ba2379cd12cc7c098d97053a">Bounce</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>
+80
View File
@@ -0,0 +1,80 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Bounce2: Class Hierarchy</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Bounce2
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">Class Hierarchy</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">This inheritance list is sorted roughly, but not completely, alphabetically:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_debouncer.html" target="_self">Debouncer</a></td><td class="desc">The Debouce class. Just the deboucing code separated from all harware </td></tr>
<tr id="row_0_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_0_" class="arrow" onclick="toggleFolder('0_0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_bounce.html" target="_self">Bounce</a></td><td class="desc">The <a class="el" href="class_debouncer.html" title="The Debouce class. Just the deboucing code separated from all harware. ">Debouncer</a>:<a class="el" href="class_bounce.html" title="The Debouncer:Bounce class. Links the Deboucing class to a hardware pin. ">Bounce</a> class. Links the Deboucing class to a hardware pin </td></tr>
<tr id="row_0_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_button.html" target="_self">Button</a></td><td class="desc">The Debouncer:Bounce:<a class="el" href="class_button.html" title="The Debouncer:Bounce:Button class. The Button class matches an electrical state to a physical action...">Button</a> class. The <a class="el" href="class_button.html" title="The Debouncer:Bounce:Button class. The Button class matches an electrical state to a physical action...">Button</a> class matches an electrical state to a physical action </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>
+23 -13
View File
File diff suppressed because one or more lines are too long
+3 -1
View File
@@ -3,9 +3,11 @@ var menudata={children:[
{text:"Classes",url:"annotated.html",children:[
{text:"Class List",url:"annotated.html"},
{text:"Class Index",url:"classes.html"},
{text:"Class Hierarchy",url:"hierarchy.html"},
{text:"Class Members",url:"functions.html",children:[
{text:"All",url:"functions.html"},
{text:"Functions",url:"functions_func.html"}]}]},
{text:"Functions",url:"functions_func.html"},
{text:"Variables",url:"functions_vars.html"}]}]},
{text:"Files",url:"files.html",children:[
{text:"File List",url:"files.html"}]},
{text:"Examples",url:"examples.html"}]}
+2 -1
View File
@@ -1,5 +1,6 @@
var searchData=
[
['bounce',['Bounce',['../class_bounce.html',1,'Bounce'],['../class_bounce.html#aa62a2e2b5ad0ee6913a95f2f2a0e7606',1,'Bounce::Bounce()'],['../class_bounce.html#ab34517094faf21d4f38b36da2915132b',1,'Bounce::Bounce(uint8_t pin, unsigned long interval_millis)']]],
['bounce',['Bounce',['../class_bounce.html',1,'Bounce'],['../class_bounce.html#aa62a2e2b5ad0ee6913a95f2f2a0e7606',1,'Bounce::Bounce()']]],
['button',['Button',['../class_button.html',1,'Button'],['../class_button.html#a3b36df1ae23c58aedb9e15a713159459',1,'Button::Button()']]],
['bounce_202',['BOUNCE 2',['../index.html',1,'']]]
];
+1 -1
View File
@@ -1,4 +1,4 @@
var searchData=
[
['duration',['duration',['../class_bounce.html#a62412d814d36102ab3d285e801d5d29a',1,'Bounce']]]
['changed',['changed',['../class_debouncer.html#a47c83f13a03920d21fbfafd8469ec06b',1,'Debouncer']]]
];
+2 -2
View File
@@ -1,5 +1,5 @@
var searchData=
[
['fallingedge',['fallingEdge',['../class_bounce.html#ac756559419bfa1c5060e5e4a4ad6406f',1,'Bounce']]],
['fell',['fell',['../class_bounce.html#abfbb0910f5b1ec4e25315cff26dd6289',1,'Bounce']]]
['debouncer',['Debouncer',['../class_debouncer.html',1,'Debouncer'],['../class_debouncer.html#a34c46ca04d4178933cc0049436d10fe6',1,'Debouncer::Debouncer()']]],
['duration',['duration',['../class_debouncer.html#a462994f1f9a20876b2ee239eeee97448',1,'Debouncer']]]
];
+2 -1
View File
@@ -1,4 +1,5 @@
var searchData=
[
['interval',['interval',['../class_bounce.html#a2c6e68bf749497c597a9437b488b3d7c',1,'Bounce']]]
['fallingedge',['fallingEdge',['../class_bounce.html#ac756559419bfa1c5060e5e4a4ad6406f',1,'Bounce']]],
['fell',['fell',['../class_debouncer.html#a1ef5a04b4ebe97352ff3bb227476035c',1,'Debouncer']]]
];
+1 -3
View File
@@ -1,6 +1,4 @@
var searchData=
[
['read',['read',['../class_bounce.html#ae1936fdf44501992707e6cbaee9bbc76',1,'Bounce']]],
['risingedge',['risingEdge',['../class_bounce.html#a3417beb80eb6593d768c2e9884c57aa0',1,'Bounce']]],
['rose',['rose',['../class_bounce.html#a9e4187934576e568cdfa8f94efeff6f2',1,'Bounce']]]
['interval',['interval',['../class_debouncer.html#a930bf3945e698d77b889f6309079857d',1,'Debouncer']]]
];
+3 -1
View File
@@ -1,4 +1,6 @@
var searchData=
[
['update',['update',['../class_bounce.html#ab36d7b83bf32e0935a0c2c6a05096441',1,'Bounce']]]
['pin',['pin',['../class_bounce.html#a1cb79cb0ba2379cd12cc7c098d97053a',1,'Bounce']]],
['pressed',['pressed',['../class_button.html#a8e37fb754907685539ea71183204b033',1,'Button']]],
['previousduration',['previousDuration',['../class_debouncer.html#a89ab95e7ac24874bb8cb684dc36a98b9',1,'Debouncer']]]
];
+26
View File
@@ -0,0 +1,26 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_7.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
createResults();
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
--></script>
</div>
</body>
</html>
+7
View File
@@ -0,0 +1,7 @@
var searchData=
[
['read',['read',['../class_debouncer.html#a2cae68910c19c778507f257842fc41bf',1,'Debouncer']]],
['released',['released',['../class_button.html#a0b3d2033eb8a6e93141e0b2d8375e9dd',1,'Button']]],
['risingedge',['risingEdge',['../class_bounce.html#a3417beb80eb6593d768c2e9884c57aa0',1,'Bounce']]],
['rose',['rose',['../class_debouncer.html#a9990de6fa7256842c35c246d7dea8dbb',1,'Debouncer']]]
];
+26
View File
@@ -0,0 +1,26 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_8.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
createResults();
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
--></script>
</div>
</body>
</html>
+4
View File
@@ -0,0 +1,4 @@
var searchData=
[
['setpressedstate',['setPressedState',['../class_button.html#aa58da793c244339b781349cf9af544d5',1,'Button']]]
];
+26
View File
@@ -0,0 +1,26 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_9.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
createResults();
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
--></script>
</div>
</body>
</html>
+4
View File
@@ -0,0 +1,4 @@
var searchData=
[
['update',['update',['../class_debouncer.html#a72f3e8d483555031d2ac21b0b7702c06',1,'Debouncer']]]
];
+2 -1
View File
@@ -1,4 +1,5 @@
var searchData=
[
['bounce',['Bounce',['../class_bounce.html',1,'']]]
['bounce',['Bounce',['../class_bounce.html',1,'']]],
['button',['Button',['../class_button.html',1,'']]]
];
+26
View File
@@ -0,0 +1,26 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="classes_1.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
createResults();
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
--></script>
</div>
</body>
</html>
+4
View File
@@ -0,0 +1,4 @@
var searchData=
[
['debouncer',['Debouncer',['../class_debouncer.html',1,'']]]
];
+2 -1
View File
@@ -1,4 +1,5 @@
var searchData=
[
['bounce',['Bounce',['../class_bounce.html#aa62a2e2b5ad0ee6913a95f2f2a0e7606',1,'Bounce::Bounce()'],['../class_bounce.html#ab34517094faf21d4f38b36da2915132b',1,'Bounce::Bounce(uint8_t pin, unsigned long interval_millis)']]]
['bounce',['Bounce',['../class_bounce.html#aa62a2e2b5ad0ee6913a95f2f2a0e7606',1,'Bounce']]],
['button',['Button',['../class_button.html#a3b36df1ae23c58aedb9e15a713159459',1,'Button']]]
];
+1 -1
View File
@@ -1,4 +1,4 @@
var searchData=
[
['duration',['duration',['../class_bounce.html#a62412d814d36102ab3d285e801d5d29a',1,'Bounce']]]
['changed',['changed',['../class_debouncer.html#a47c83f13a03920d21fbfafd8469ec06b',1,'Debouncer']]]
];
+2 -2
View File
@@ -1,5 +1,5 @@
var searchData=
[
['fallingedge',['fallingEdge',['../class_bounce.html#ac756559419bfa1c5060e5e4a4ad6406f',1,'Bounce']]],
['fell',['fell',['../class_bounce.html#abfbb0910f5b1ec4e25315cff26dd6289',1,'Bounce']]]
['debouncer',['Debouncer',['../class_debouncer.html#a34c46ca04d4178933cc0049436d10fe6',1,'Debouncer']]],
['duration',['duration',['../class_debouncer.html#a462994f1f9a20876b2ee239eeee97448',1,'Debouncer']]]
];
+2 -1
View File
@@ -1,4 +1,5 @@
var searchData=
[
['interval',['interval',['../class_bounce.html#a2c6e68bf749497c597a9437b488b3d7c',1,'Bounce']]]
['fallingedge',['fallingEdge',['../class_bounce.html#ac756559419bfa1c5060e5e4a4ad6406f',1,'Bounce']]],
['fell',['fell',['../class_debouncer.html#a1ef5a04b4ebe97352ff3bb227476035c',1,'Debouncer']]]
];
+1 -3
View File
@@ -1,6 +1,4 @@
var searchData=
[
['read',['read',['../class_bounce.html#ae1936fdf44501992707e6cbaee9bbc76',1,'Bounce']]],
['risingedge',['risingEdge',['../class_bounce.html#a3417beb80eb6593d768c2e9884c57aa0',1,'Bounce']]],
['rose',['rose',['../class_bounce.html#a9e4187934576e568cdfa8f94efeff6f2',1,'Bounce']]]
['interval',['interval',['../class_debouncer.html#a930bf3945e698d77b889f6309079857d',1,'Debouncer']]]
];
+2 -1
View File
@@ -1,4 +1,5 @@
var searchData=
[
['update',['update',['../class_bounce.html#ab36d7b83bf32e0935a0c2c6a05096441',1,'Bounce']]]
['pressed',['pressed',['../class_button.html#a8e37fb754907685539ea71183204b033',1,'Button']]],
['previousduration',['previousDuration',['../class_debouncer.html#a89ab95e7ac24874bb8cb684dc36a98b9',1,'Debouncer']]]
];
+26
View File
@@ -0,0 +1,26 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="functions_7.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
createResults();
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
--></script>
</div>
</body>
</html>
+7
View File
@@ -0,0 +1,7 @@
var searchData=
[
['read',['read',['../class_debouncer.html#a2cae68910c19c778507f257842fc41bf',1,'Debouncer']]],
['released',['released',['../class_button.html#a0b3d2033eb8a6e93141e0b2d8375e9dd',1,'Button']]],
['risingedge',['risingEdge',['../class_bounce.html#a3417beb80eb6593d768c2e9884c57aa0',1,'Bounce']]],
['rose',['rose',['../class_debouncer.html#a9990de6fa7256842c35c246d7dea8dbb',1,'Debouncer']]]
];
+26
View File
@@ -0,0 +1,26 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="functions_8.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
createResults();
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
--></script>
</div>
</body>
</html>
+4
View File
@@ -0,0 +1,4 @@
var searchData=
[
['setpressedstate',['setPressedState',['../class_button.html#aa58da793c244339b781349cf9af544d5',1,'Button']]]
];
+26
View File
@@ -0,0 +1,26 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="functions_9.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
createResults();
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
--></script>
</div>
</body>
</html>
+4
View File
@@ -0,0 +1,4 @@
var searchData=
[
['update',['update',['../class_debouncer.html#a72f3e8d483555031d2ac21b0b7702c06',1,'Debouncer']]]
];
+9 -6
View File
@@ -1,9 +1,10 @@
var indexSectionsWithContent =
{
0: "abdfiru",
1: "b",
2: "abdfiru",
3: "b"
0: "abcdfiprsu",
1: "bd",
2: "abcdfiprsu",
3: "p",
4: "b"
};
var indexSectionNames =
@@ -11,7 +12,8 @@ var indexSectionNames =
0: "all",
1: "classes",
2: "functions",
3: "pages"
3: "variables",
4: "pages"
};
var indexSectionLabels =
@@ -19,6 +21,7 @@ var indexSectionLabels =
0: "All",
1: "Classes",
2: "Functions",
3: "Pages"
3: "Variables",
4: "Pages"
};
+26
View File
@@ -0,0 +1,26 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="variables_0.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
createResults();
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
--></script>
</div>
</body>
</html>
+4
View File
@@ -0,0 +1,4 @@
var searchData=
[
['pin',['pin',['../class_bounce.html#a1cb79cb0ba2379cd12cc7c098d97053a',1,'Bounce']]]
];
+1 -1
View File
File diff suppressed because one or more lines are too long
+59
View File
@@ -0,0 +1,59 @@
/*
DESCRIPTION
====================
Simple example of the Button class from the Bounce library.
The Button class matches an electrical state to a physical action.
that switches the debug LED when
either of 2 buttons are pressed.
*/
// Include the Bounce2 library found here :
// https://github.com/thomasfredericks/Bounce2
#include <Bounce2.h>
#define BUTTON_PIN_A 2
#define BUTTON_PIN_B 3
#define LED_PIN LED_BUILTIN
// Instantiate a Button object
Button buttonA = Button();
// Instantiate another Button object
Button buttonB = Button();
void setup() {
// SETUP BUTTON A
buttonA.attach( BUTTON_PIN_A , INPUT_PULLUP );
buttonA.interval(5); // interval in ms
buttonA.setPressedState(LOW); // INDICATE THAT THE LOW STATE CORRESPONDS TO PHYSICALLY PRESSING THE BUTTON
// SETUP BUTTON B
buttonB.attach( BUTTON_PIN_B , INPUT_PULLUP );
buttonB.interval(5); // interval in ms
buttonB.setPressedState(LOW); // INDICATE THAT THE LOW STATE CORRESPONDS TO PHYSICALLY PRESSING THE BUTTON
// SETUP LED
pinMode(LED_PIN,OUTPUT);
}
void loop() {
// UPDATE THE BUTTONS
buttonA.update();
buttonB.update();
// TOGGLE THE LED IF EITHER BUTTON IS PRESSED
if ( buttonA.pressed() || buttonB.pressed() ) {
digitalWrite(LED_PIN, !digitalRead(LED_PIN) );
}
}
+5 -1
View File
@@ -7,7 +7,8 @@
#######################################
Bounce KEYWORD1
Bounce2 KEYWORD1
Bounce2 KEYWORD1
Button KEYWORD1
#######################################
# Methods and Functions (KEYWORD2)
@@ -20,6 +21,9 @@ attach KEYWORD2
rose KEYWORD2
fell KEYWORD2
duration KEYWORD2
pressed KEYWORD2
released KEYWORD2
setPressedState KEYWORD2
#######################################
# Instances (KEYWORD2)
+1 -1
View File
@@ -6,7 +6,7 @@
"type": "git",
"url": "https://github.com/thomasfredericks/Bounce2.git"
},
"version": "2.53",
"version": "2.55",
"exclude": [
"*.png",
"*.zip"
+1 -1
View File
@@ -1,5 +1,5 @@
name=Bounce2
version=2.53
version=2.55
author=Thomas O Fredericks <tof@t-o-f.info> with contributions from Eric Lowry, Jim Schimpf, Tom Harkaway, Joachim Krüger and MrGradgrind.
maintainer=Thomas O Fredericks <tof@t-o-f.info>
sentence=Debouncing library for Arduino and Wiring.
+45 -28
View File
@@ -3,40 +3,33 @@
#include "Bounce2.h"
//////////////
// DEBOUNCE //
//////////////
Bounce::Bounce()
: previous_millis(0)
Debouncer::Debouncer():previous_millis(0)
, interval_millis(10)
, state(0)
, pin(0)
{}
, state(0) {}
void Bounce::attach(int pin) {
this->pin = pin;
state = 0;
void Debouncer::interval(uint16_t interval_millis)
{
this->interval_millis = interval_millis;
}
void Debouncer::begin() {
state = 0;
if (readCurrentState()) {
setStateFlag(DEBOUNCED_STATE | UNSTABLE_STATE);
}
#ifdef BOUNCE_LOCK_OUT
#ifdef BOUNCE_LOCK_OUT
previous_millis = 0;
#else
previous_millis = millis();
#endif
}
void Bounce::attach(int pin, int mode){
setPinMode(pin, mode);
this->attach(pin);
}
void Bounce::interval(uint16_t interval_millis)
{
this->interval_millis = interval_millis;
}
bool Bounce::update()
bool Debouncer::update()
{
unsetStateFlag(CHANGED_STATE);
@@ -107,32 +100,56 @@ bool Bounce::update()
}
// WIP HELD
unsigned long Bounce::previousDuration() {
unsigned long Debouncer::previousDuration() {
return durationOfPreviousState;
}
unsigned long Bounce::duration() {
unsigned long Debouncer::duration() {
return (millis() - stateChangeLastTime);
}
inline void Bounce::changeState() {
inline void Debouncer::changeState() {
toggleStateFlag(DEBOUNCED_STATE);
setStateFlag(CHANGED_STATE) ;
durationOfPreviousState = millis() - stateChangeLastTime;
stateChangeLastTime = millis();
}
bool Bounce::read()
bool Debouncer::read()
{
return getStateFlag(DEBOUNCED_STATE);
}
bool Bounce::rose()
bool Debouncer::rose()
{
return getStateFlag(DEBOUNCED_STATE) && getStateFlag(CHANGED_STATE);
}
bool Bounce::fell()
bool Debouncer::fell()
{
return !getStateFlag(DEBOUNCED_STATE) && getStateFlag(CHANGED_STATE);
}
////////////
// BOUNCE //
////////////
Bounce::Bounce()
: pin(0)
{}
void Bounce::attach(int pin) {
this->pin = pin;
// SET INITIAL STATE
begin();
}
void Bounce::attach(int pin, int mode){
setPinMode(pin, mode);
this->attach(pin);
}
+178 -88
View File
@@ -69,16 +69,120 @@
Example of two instances of the Bounce class that switches the debug LED when either one of the two buttons is pressed.
*/
static const uint8_t DEBOUNCED_STATE = 0b00000001;
static const uint8_t UNSTABLE_STATE = 0b00000010;
static const uint8_t CHANGED_STATE = 0b00000100;
/**
The Bounce class.
*/
class Bounce
@brief The Debouce class. Just the deboucing code separated from all harware.
*/
class Debouncer
{
public:
// Note : this is private as it migh change in the futur
private:
static const uint8_t DEBOUNCED_STATE = 0b00000001;
static const uint8_t UNSTABLE_STATE = 0b00000010;
static const uint8_t CHANGED_STATE = 0b00000100;
private:
inline void changeState();
inline void setStateFlag(const uint8_t flag) {state |= flag;}
inline void unsetStateFlag(const uint8_t flag) {state &= ~flag;}
inline void toggleStateFlag(const uint8_t flag) {state ^= flag;}
inline bool getStateFlag(const uint8_t flag) {return((state & flag) != 0);}
public:
/*!
@brief Create an instance of the Debounce class.
@endcode
*/
Debouncer();
/**
@brief Sets the debounce interval in milliseconds.
@param interval_millis
The interval time in milliseconds.
*/
void interval(uint16_t interval_millis);
/*!
@brief Updates the pin's state.
Because Bounce does not use interrupts, you have to "update" the object before reading its value and it has to be done as often as possible (that means to include it in your loop()). Only call update() once per loop().
@return True if the pin changed state.
*/
bool update();
/**
@brief Returns the pin's state (HIGH or LOW).
@return HIGH or LOW.
*/
bool read();
/**
@brief Returns true if pin signal transitions from high to low.
*/
bool fell();
/**
@brief Returns true if pin signal transitions from low to high.
*/
bool rose();
public:
/**
@brief Returns true if the state changed on last update.
@return True if the state changed on last update. Otherwise, returns false.
*/
bool changed( ) { return getStateFlag(CHANGED_STATE); }
/**
@brief Returns the duration in milliseconds of the current state.
Is reset to 0 once the pin rises ( rose() ) or falls ( fell() ).
@return The duration in milliseconds (unsigned long) of the current state.
*/
unsigned long duration();
/**
@brief Returns the duration in milliseconds of the previous state.
Takes the values of duration() once the pin changes state.
@return The duration in milliseconds (unsigned long) of the previous state.
*/
unsigned long previousDuration();
protected:
void begin();
virtual bool readCurrentState() =0;
unsigned long previous_millis;
uint16_t interval_millis;
uint8_t state;
unsigned long stateChangeLastTime;
unsigned long durationOfPreviousState;
};
/**
@brief The Debouncer:Bounce class. Links the Deboucing class to a hardware pin.
*/
class Bounce : public Debouncer
{
public:
/*!
@brief Create an instance of the Bounce class.
@@ -90,7 +194,7 @@ class Bounce
@endcode
*/
Bounce();
Bounce();
/*!
@@ -101,112 +205,98 @@ class Bounce
@param mode
A valid Arduino pin mode (INPUT, INPUT_PULLUP or OUTPUT).
*/
void attach(int pin, int mode);
void attach(int pin, int mode);
/**
Attach to a pin for advanced users. Only attach the pin this way once you have previously set it up. Otherwise use attach(int pin, int mode).
*/
void attach(int pin);
void attach(int pin);
/**
@brief Sets the debounce interval in milliseconds.
@param interval_millis
The interval time in milliseconds.
*/
void interval(uint16_t interval_millis);
Bounce(uint8_t pin, unsigned long interval_millis ) : Bounce() {
attach(pin);
interval(interval_millis);
}
////////////////
// Deprecated //
////////////////
/*!
@brief Updates the pin's state.
Because Bounce does not use interrupts, you have to "update" the object before reading its value and it has to be done as often as possible (that means to include it in your loop()). Only call update() once per loop().
@return True if the pin changed state.
*/
bool update();
/**
@brief Returns the pin's state (HIGH or LOW).
@return HIGH or LOW.
*/
bool read();
/**
@brief Returns true if pin signal transitions from high to low.
*/
bool fell();
/**
@brief Returns true if pin signal transitions from low to high.
*/
bool rose();
/**
@brief Deprecated (i.e. do not use). Included for partial compatibility for programs written with Bounce version 1
*/
bool risingEdge() { return rose(); }
bool risingEdge() { return rose(); }
/**
@brief Deprecated (i.e. do not use). Included for partial compatibility for programs written with Bounce version 1
*/
bool fallingEdge() { return fell(); }
bool fallingEdge() { return fell(); }
/**
@brief Deprecated (i.e. do not use). Included for partial compatibility for programs written with Bounce version 1
*/
Bounce(uint8_t pin, unsigned long interval_millis ) : Bounce() {
attach(pin);
interval(interval_millis);
}
/**
@brief Returns the duration in milliseconds of the current state.
Is reset to 0 once the pin rises ( rose() ) or falls ( fell() ).
@return The duration in milliseconds (unsigned long) of the current state.
*/
unsigned long duration();
protected:
/**
@brief Returns the duration in milliseconds of the previous state.
Takes the values of duration() once the pin changes state.
@return The duration in milliseconds (unsigned long) of the previous state.
*/
unsigned long previousDuration();
uint8_t pin;
protected:
unsigned long previous_millis;
uint16_t interval_millis;
uint8_t state;
uint8_t pin;
unsigned long stateChangeLastTime;
unsigned long durationOfPreviousState;
virtual bool readCurrentState() { return digitalRead(pin); }
virtual void setPinMode(int pin, int mode) {
virtual bool readCurrentState() { return digitalRead(pin); }
virtual void setPinMode(int pin, int mode) {
#if defined(ARDUINO_ARCH_STM32F1)
pinMode(pin, (WiringPinMode)mode);
pinMode(pin, (WiringPinMode)mode);
#else
pinMode(pin, mode);
pinMode(pin, mode);
#endif
}
}
private:
inline void changeState();
inline void setStateFlag(const uint8_t flag) {state |= flag;}
inline void unsetStateFlag(const uint8_t flag) {state &= ~flag;}
inline void toggleStateFlag(const uint8_t flag) {state ^= flag;}
inline bool getStateFlag(const uint8_t flag) {return((state & flag) != 0);}
};
/**
@brief The Debouncer:Bounce:Button class. The Button class matches an electrical state to a physical action.
*/
class Button : public Bounce{
protected:
bool stateForPressed = 1; //
public:
bool changed( ) { return getStateFlag(CHANGED_STATE); }
/*!
@brief Create an instance of the Button class. By default, the pressed state is matched to a HIGH electrical level.
@code
// Create an instance of the Button class.
Button() button;
@endcode
*/
Button(){ }
/*!
@brief Set the electrical state (HIGH/LOW) that corresponds to a physical press. By default, the pressed state is matched to a HIGH electrical level.
@param state
The electrical state (HIGH/LOW) that corresponds to a physical press.
*/
void setPressedState(bool state){
stateForPressed = state;
}
/*!
@brief Returns true if the button was physically pressed
*/
bool pressed() {
return changed() && (read() == stateForPressed);
};
/*!
@brief Returns true if the button was physically released
*/
bool released() {
return changed() && (read() != stateForPressed);
};
};