Adrian Renner / Mbed 2 deprecated HaPo_Labor2

Dependencies:   mbed

Committer:
addyi
Date:
Thu Nov 27 13:54:47 2014 +0000
Revision:
3:2457871851db
Parent:
2:14b38579386c
Fertig fuer beide seiten

Who changed what in which revision?

UserRevisionLine numberNew contents of line
addyi 0:76669ad2c30b 1 #include "mbed.h"
addyi 0:76669ad2c30b 2
addyi 3:2457871851db 3 #define anz 6
addyi 3:2457871851db 4
addyi 0:76669ad2c30b 5 DigitalIn b1(p8);
addyi 0:76669ad2c30b 6 DigitalIn b2(p14);
addyi 0:76669ad2c30b 7 DigitalOut led[] = {(LED1), (LED2),(LED3),(LED4)};
addyi 0:76669ad2c30b 8
addyi 0:76669ad2c30b 9
addyi 0:76669ad2c30b 10 bool shortPress =false;
addyi 0:76669ad2c30b 11 bool longPress = false;
addyi 3:2457871851db 12 bool isRight=true;
addyi 0:76669ad2c30b 13
addyi 0:76669ad2c30b 14 int counterTime = 0;
addyi 3:2457871851db 15 int counterBlink=anz;
addyi 0:76669ad2c30b 16
addyi 0:76669ad2c30b 17 Ticker timeTasterTest;
addyi 0:76669ad2c30b 18 Ticker timeLedTest;
addyi 0:76669ad2c30b 19
addyi 0:76669ad2c30b 20 void tasterTest();
addyi 0:76669ad2c30b 21 void ledTest();
addyi 3:2457871851db 22 void reset();
addyi 0:76669ad2c30b 23
addyi 0:76669ad2c30b 24 int main()
addyi 0:76669ad2c30b 25 {
addyi 1:0072ef0302ec 26 timeTasterTest.attach(&tasterTest,0.01);
addyi 1:0072ef0302ec 27 timeLedTest.attach(&ledTest,0.5);
addyi 3:2457871851db 28
addyi 0:76669ad2c30b 29 while(1) {
addyi 1:0072ef0302ec 30
addyi 1:0072ef0302ec 31
addyi 0:76669ad2c30b 32 }
addyi 0:76669ad2c30b 33 }
addyi 0:76669ad2c30b 34
addyi 0:76669ad2c30b 35 void ledTest()
addyi 0:76669ad2c30b 36 {
addyi 0:76669ad2c30b 37 if(shortPress) {
addyi 2:14b38579386c 38 if(counterBlink>=0) {
addyi 3:2457871851db 39 if(!isRight) {
addyi 3:2457871851db 40 led[3]=!led[3];
addyi 3:2457871851db 41 } else {
addyi 3:2457871851db 42 led[0]=!led[0];
addyi 3:2457871851db 43 }
addyi 0:76669ad2c30b 44 counterBlink--;
addyi 0:76669ad2c30b 45 } else {
addyi 3:2457871851db 46 reset();
addyi 0:76669ad2c30b 47 }
addyi 0:76669ad2c30b 48 }
addyi 0:76669ad2c30b 49 if(longPress) {
addyi 3:2457871851db 50 if(!isRight) {
addyi 3:2457871851db 51 led[3]=!led[3];
addyi 3:2457871851db 52 } else {
addyi 3:2457871851db 53 led[0]=!led[0];
addyi 3:2457871851db 54 }
addyi 1:0072ef0302ec 55 }
addyi 1:0072ef0302ec 56
addyi 3:2457871851db 57
addyi 0:76669ad2c30b 58
addyi 0:76669ad2c30b 59 }
addyi 0:76669ad2c30b 60
addyi 0:76669ad2c30b 61 void tasterTest()
addyi 0:76669ad2c30b 62 {
addyi 3:2457871851db 63 if(!b1 != !b2) {
addyi 3:2457871851db 64 if(!b1&&isRight) {
addyi 3:2457871851db 65 isRight=false;
addyi 3:2457871851db 66 reset();
addyi 3:2457871851db 67 }
addyi 3:2457871851db 68
addyi 3:2457871851db 69 if (!b2&&!isRight) {
addyi 3:2457871851db 70 isRight=true;
addyi 3:2457871851db 71 reset();
addyi 3:2457871851db 72 }
addyi 3:2457871851db 73
addyi 0:76669ad2c30b 74 if(counterTime<500) {
addyi 0:76669ad2c30b 75 longPress=false;
addyi 0:76669ad2c30b 76 shortPress=true;
addyi 0:76669ad2c30b 77 counterTime ++;
addyi 0:76669ad2c30b 78 } else {
addyi 0:76669ad2c30b 79 counterTime=0;
addyi 0:76669ad2c30b 80 longPress=true;
addyi 0:76669ad2c30b 81 shortPress=false;
addyi 0:76669ad2c30b 82 }
addyi 0:76669ad2c30b 83 } else {
addyi 0:76669ad2c30b 84 if(longPress) {
addyi 3:2457871851db 85 reset();
addyi 0:76669ad2c30b 86 }
addyi 0:76669ad2c30b 87 }
addyi 0:76669ad2c30b 88 }
addyi 3:2457871851db 89
addyi 3:2457871851db 90 void reset()
addyi 3:2457871851db 91 {
addyi 3:2457871851db 92 counterTime=0;
addyi 3:2457871851db 93 longPress=false;
addyi 3:2457871851db 94 shortPress=false;
addyi 3:2457871851db 95
addyi 3:2457871851db 96 led[3]=0;
addyi 3:2457871851db 97 led[0]=0;
addyi 3:2457871851db 98 counterBlink=anz;
addyi 3:2457871851db 99 }
addyi 3:2457871851db 100
addyi 3:2457871851db 101
addyi 3:2457871851db 102