Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@3:2457871851db, 2014-11-27 (annotated)
- 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?
| User | Revision | Line number | New 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 |