tarea uno pulsadores

Fork of Debounced by Warwick Racing

Files at this revision

API Documentation at this revision

Comitter:
juanco
Date:
Tue May 13 16:46:07 2014 +0000
Parent:
0:8992c13bbb9b
Commit message:
tarea uno, pulsadores

Changed in this revision

DebouncedIn.cpp Show diff for this revision Revisions of this file
DebouncedIn.h Show diff for this revision Revisions of this file
diff -r 8992c13bbb9b -r 4a01835c24f3 DebouncedIn.cpp
--- a/DebouncedIn.cpp	Sun Nov 28 14:19:52 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-#include "DebouncedIn.h"
-#include "mbed.h"
- 
- /*
-  * Constructor
-  */
- DebouncedIn::DebouncedIn(PinName in) 
-     : _in(in) {    
-         
-     // reset all the flags and counters    
-     _samples = 0;
-     _output = 0;
-     _output_last = 0;
-     _rising_flag = 0;
-     _falling_flag = 0;
-     _state_counter = 0;
-     
-     // Attach ticker
-     _ticker.attach(this, &DebouncedIn::_sample, 0.005);     
- }
-   
- void DebouncedIn::_sample() {
- 
-     // take a sample
-     _samples = _samples >> 1; // shift left
-       
-     if (_in) {
-         _samples |= 0x80;
-     }  
-       
-     // examine the sample window, look for steady state
-     if (_samples == 0x00) {
-         _output = 0;
-     } 
-     else if (_samples == 0xFF) {
-         _output = 1;
-     }
- 
- 
-     // Rising edge detection
-     if ((_output == 1) && (_output_last == 0)) {
-         _rising_flag++;
-         _state_counter = 0;
-     }
- 
-     // Falling edge detection
-     else if ((_output == 0) && (_output_last == 1)) {
-         _falling_flag++;
-         _state_counter = 0;
-     }
-     
-     // steady state
-     else {
-         _state_counter++;
-     }
-     
-    // update the output
-     _output_last = _output;
-     
- }
- 
- 
- 
- // return number of rising edges
- int DebouncedIn::rising(void) {
-     int return_value = _rising_flag; 
-     _rising_flag = 0;
-     return(return_value);
- }
- 
- // return number of falling edges
- int DebouncedIn::falling(void) {
-     int return_value = _falling_flag; 
-     _falling_flag = 0;
-     return(return_value);
- }
- 
- // return number of ticsk we've bene steady for
- int DebouncedIn::steady(void) {
- return(_state_counter);
- }
- 
- // return the debounced status
- int DebouncedIn::read(void) {
-     return(_output);
- }
- 
- // shorthand for read()
- DebouncedIn::operator int() {
-     return read();
- }
\ No newline at end of file
diff -r 8992c13bbb9b -r 4a01835c24f3 DebouncedIn.h
--- a/DebouncedIn.h	Sun Nov 28 14:19:52 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-#include "mbed.h"
- 
-     class DebouncedIn {
-         public:      
-              DebouncedIn(PinName in);
- 
-              int read (void);
-              operator int();
-               
-              int rising(void);
-              int falling(void);
-              int steady(void);
-               
-         private :    
-                // objects
-                DigitalIn _in;    
-                Ticker _ticker;
- 
-                // function to take a sample, and update flags
-                void _sample(void);
- 
-                // counters and flags
-                int _samples;
-                int _output;
-                int _output_last;
-                int _rising_flag;
-                int _falling_flag;
-                int _state_counter;
-     };
\ No newline at end of file