11

Dependencies:   millis

Files at this revision

API Documentation at this revision

Comitter:
turumputum
Date:
Thu Nov 15 09:23:23 2018 +0000
Parent:
2:ab67728e0c23
Commit message:
213?

Changed in this revision

lift-back-eth-keil/DebounceIn.h Show annotated file Show diff for this revision Revisions of this file
lift-back-eth-keil/GettingStarted.html Show annotated file Show diff for this revision Revisions of this file
lift-back-eth-keil/millis.lib Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lift-back-eth-keil/DebounceIn.h	Thu Nov 15 09:23:23 2018 +0000
@@ -0,0 +1,116 @@
+/*
+    Copyright (c) 2010 Andy Kirkham
+ 
+    Permission is hereby granted, free of charge, to any person obtaining a copy
+    of this software and associated documentation files (the "Software"), to deal
+    in the Software without restriction, including without limitation the rights
+    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+    copies of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+ 
+    The above copyright notice and this permission notice shall be included in
+    all copies or substantial portions of the Software.
+ 
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+    THE SOFTWARE.
+*/
+ 
+#ifndef DEBOUNCEIN_H
+#define DEBOUNCEIN_H
+ 
+#include "mbed.h"
+
+/** DebounceIn adds mechanical switch debouncing to DigitialIn.
+ *
+ * Example:
+ * @code
+ * #include "mbed.h"
+ * #include "DebounceIn.h"
+ *
+ * DebounceIn  d(p5);
+ * DigitialOut led1(LED1);
+ * DigitialOut led2(LED2);
+ *
+ * int main() {
+ *     while(1) {
+ *         led1 = d;
+ *         led2 = d.read();
+ *     }
+ * }
+ * @endcode
+ *
+ * @see set_debounce_us() To change the sampling frequency.
+ * @see set_samples() To alter the number of samples.
+ *
+ * Users of this library may also be interested in PinDetect library:-
+ * @see http://mbed.org/users/AjK/libraries/PinDetect/latest
+ *
+ * This example shows one input displayed by two outputs. The input
+ * is debounced by the default 10ms.
+ */
+ 
+class DebounceIn : public DigitalIn {
+    public:
+    
+        /** set_debounce_us
+         *
+         * Sets the debounce sample period time in microseconds, default is 1000 (1ms)
+         *
+         * @param int i The debounce sample period time to set.
+         */        
+        void set_debounce_us(int i) { _ticker.attach_us(this, &DebounceIn::_callback, i); }
+        
+        /** set_samples
+         *
+         * Defines the number of samples before switching the shadow 
+         * definition of the pin. 
+         *
+         * @param int i The number of samples.
+         */        
+        void set_samples(int i) { _samples = i; }
+        
+        /** read
+         *
+         * Read the value of the debounced pin.
+         */
+        int read(void) { return _shadow; }
+        
+#ifdef MBED_OPERATORS
+        /** operator int()
+         *
+         * Read the value of the debounced pin.
+         */
+        operator int() { return read(); }
+#endif  
+
+        /** Constructor
+         * 
+         * @param PinName pin The pin to assign as an input.
+         */
+        DebounceIn(PinName pin) : DigitalIn(pin,PullUp) { _counter = 0; _samples = 10; set_debounce_us(1000); };
+        
+    protected:
+        void _callback(void) { 
+            if (DigitalIn::read()) { 
+                if (_counter < _samples) _counter++; 
+                if (_counter == _samples) _shadow = 1; 
+            }
+            else { 
+                if (_counter > 0) _counter--; 
+                if (_counter == 0) _shadow = 0; 
+            }
+        }
+        
+        Ticker _ticker;
+        int    _shadow;
+        int    _counter;
+        int    _samples;
+};
+ 
+#endif
+ 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lift-back-eth-keil/GettingStarted.html	Thu Nov 15 09:23:23 2018 +0000
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML>
+<html lang="en-US">
+    <head>
+        <meta charset="UTF-8">
+        <meta http-equiv="refresh"
+              content="1;url="https://os.mbed.com/docs/latest/tools/exporting.html>
+        <script type="text/javascript">
+            window.location.href = "https://os.mbed.com/docs/latest/tools/exporting.html"
+        </script>
+        <title>Page Redirection</title>
+    </head>
+    <body>
+        If you are not redirected automatically, please follow the
+        <a href='https://os.mbed.com/docs/v5.6/tools/exporting.html/'>link to the online exporter documentation</a>
+    </body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lift-back-eth-keil/millis.lib	Thu Nov 15 09:23:23 2018 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/teams/DFRobot/code/millis/#736e6cc31bcd