Presionandonos y complicandonos

Dependencies:   mbed

Committer:
RomanValenciaP
Date:
Fri Feb 19 21:43:03 2016 +0000
Revision:
0:e2fdff8cdc9f
v1.0 - First Release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RomanValenciaP 0:e2fdff8cdc9f 1
RomanValenciaP 0:e2fdff8cdc9f 2
RomanValenciaP 0:e2fdff8cdc9f 3 #include "mbed.h"
RomanValenciaP 0:e2fdff8cdc9f 4
RomanValenciaP 0:e2fdff8cdc9f 5
RomanValenciaP 0:e2fdff8cdc9f 6 Serial pc( USBTX , USBRX );
RomanValenciaP 0:e2fdff8cdc9f 7
RomanValenciaP 0:e2fdff8cdc9f 8 class Botonazo
RomanValenciaP 0:e2fdff8cdc9f 9 {
RomanValenciaP 0:e2fdff8cdc9f 10 public:
RomanValenciaP 0:e2fdff8cdc9f 11 Botonazo( PinName btn ) : _btn( btn )
RomanValenciaP 0:e2fdff8cdc9f 12 {
RomanValenciaP 0:e2fdff8cdc9f 13 }
RomanValenciaP 0:e2fdff8cdc9f 14 bool isPressed( void )
RomanValenciaP 0:e2fdff8cdc9f 15 {
RomanValenciaP 0:e2fdff8cdc9f 16 int _lastButtonState = 1;
RomanValenciaP 0:e2fdff8cdc9f 17
RomanValenciaP 0:e2fdff8cdc9f 18 int buttonState;
RomanValenciaP 0:e2fdff8cdc9f 19 bool isPressed = 0;
RomanValenciaP 0:e2fdff8cdc9f 20 //buttonState = _btn.read;
RomanValenciaP 0:e2fdff8cdc9f 21 buttonState = _btn;
RomanValenciaP 0:e2fdff8cdc9f 22 if( buttonState != _lastButtonState )
RomanValenciaP 0:e2fdff8cdc9f 23 {
RomanValenciaP 0:e2fdff8cdc9f 24 if( buttonState == 0 )
RomanValenciaP 0:e2fdff8cdc9f 25 {
RomanValenciaP 0:e2fdff8cdc9f 26 isPressed = 1;
RomanValenciaP 0:e2fdff8cdc9f 27 }
RomanValenciaP 0:e2fdff8cdc9f 28 }
RomanValenciaP 0:e2fdff8cdc9f 29 _lastButtonState = buttonState;
RomanValenciaP 0:e2fdff8cdc9f 30 return isPressed;
RomanValenciaP 0:e2fdff8cdc9f 31 }
RomanValenciaP 0:e2fdff8cdc9f 32 private:
RomanValenciaP 0:e2fdff8cdc9f 33 DigitalIn _btn;
RomanValenciaP 0:e2fdff8cdc9f 34 //int _lastButtonState = 1;
RomanValenciaP 0:e2fdff8cdc9f 35
RomanValenciaP 0:e2fdff8cdc9f 36 };
RomanValenciaP 0:e2fdff8cdc9f 37
RomanValenciaP 0:e2fdff8cdc9f 38 Botonazo btn1( PA_6 );
RomanValenciaP 0:e2fdff8cdc9f 39 Botonazo btn2( PA_7 );
RomanValenciaP 0:e2fdff8cdc9f 40
RomanValenciaP 0:e2fdff8cdc9f 41 DigitalOut led1( PA_9 );
RomanValenciaP 0:e2fdff8cdc9f 42
RomanValenciaP 0:e2fdff8cdc9f 43 unsigned long previousMillis = 0;
RomanValenciaP 0:e2fdff8cdc9f 44 bool blink = 0;
RomanValenciaP 0:e2fdff8cdc9f 45
RomanValenciaP 0:e2fdff8cdc9f 46 Timer timer;
RomanValenciaP 0:e2fdff8cdc9f 47
RomanValenciaP 0:e2fdff8cdc9f 48 int main()
RomanValenciaP 0:e2fdff8cdc9f 49 {
RomanValenciaP 0:e2fdff8cdc9f 50 timer.start();
RomanValenciaP 0:e2fdff8cdc9f 51 while(1)
RomanValenciaP 0:e2fdff8cdc9f 52 {
RomanValenciaP 0:e2fdff8cdc9f 53 if( btn1.isPressed() == 1 )
RomanValenciaP 0:e2fdff8cdc9f 54 {
RomanValenciaP 0:e2fdff8cdc9f 55 blink = 1;
RomanValenciaP 0:e2fdff8cdc9f 56 }
RomanValenciaP 0:e2fdff8cdc9f 57
RomanValenciaP 0:e2fdff8cdc9f 58 if( btn2.isPressed() == 1 )
RomanValenciaP 0:e2fdff8cdc9f 59 {
RomanValenciaP 0:e2fdff8cdc9f 60 blink = 0;
RomanValenciaP 0:e2fdff8cdc9f 61 led1 = 0;
RomanValenciaP 0:e2fdff8cdc9f 62 }
RomanValenciaP 0:e2fdff8cdc9f 63
RomanValenciaP 0:e2fdff8cdc9f 64 if( blink == 1)
RomanValenciaP 0:e2fdff8cdc9f 65 {
RomanValenciaP 0:e2fdff8cdc9f 66 unsigned long currentMillis = timer.read_ms();
RomanValenciaP 0:e2fdff8cdc9f 67
RomanValenciaP 0:e2fdff8cdc9f 68 if( ( currentMillis - previousMillis ) >= 100 )
RomanValenciaP 0:e2fdff8cdc9f 69 {
RomanValenciaP 0:e2fdff8cdc9f 70 previousMillis = currentMillis;
RomanValenciaP 0:e2fdff8cdc9f 71 led1 = !led1;
RomanValenciaP 0:e2fdff8cdc9f 72 }
RomanValenciaP 0:e2fdff8cdc9f 73 }
RomanValenciaP 0:e2fdff8cdc9f 74 }
RomanValenciaP 0:e2fdff8cdc9f 75 }
RomanValenciaP 0:e2fdff8cdc9f 76
RomanValenciaP 0:e2fdff8cdc9f 77