MrHeisenberg AUG|Wings / Mbed 2 deprecated StateMachine

Dependencies:   mbed

Committer:
philipp19961
Date:
Wed Oct 22 07:01:00 2014 +0000
Revision:
2:d4fab8f3f21f
Parent:
1:c5769cd78933
Child:
3:c048b13bc1d0
neue Version bitches - unn?tiger kot entfernt und sc freundlich geschrieben

Who changed what in which revision?

UserRevisionLine numberNew contents of line
philipp19961 0:05d73097e319 1 #include "mbed.h"
philipp19961 1:c5769cd78933 2 #include "DebouncedIn.h"
philipp19961 0:05d73097e319 3
philipp19961 0:05d73097e319 4 Ticker tick;
philipp19961 0:05d73097e319 5 DigitalOut led1(LED1);
philipp19961 0:05d73097e319 6 DigitalOut led2(LED2);
philipp19961 0:05d73097e319 7 DigitalOut led3(LED3);
philipp19961 0:05d73097e319 8 DigitalOut led4(LED4);
philipp19961 0:05d73097e319 9
philipp19961 1:c5769cd78933 10 DebouncedIn button(p12);
philipp19961 0:05d73097e319 11
philipp19961 0:05d73097e319 12 // Zum Schalten: 1 Taster PINA PA0
philipp19961 0:05d73097e319 13 // 1. Funktion
philipp19961 0:05d73097e319 14 // Start-Taste 1x betätigen:
philipp19961 0:05d73097e319 15 // Dauerlicht aller 4 LEDs
philipp19961 0:05d73097e319 16 // 2. Funktion
philipp19961 0:05d73097e319 17 // Start-Taste ein 2.mal betätigen:
philipp19961 0:05d73097e319 18 // LEDs blinken im ca. 400 Millisekunden-Takt; 200 msec Ein, 200 msec Aus
philipp19961 0:05d73097e319 19 // Ausschalten des Rücklichts
philipp19961 0:05d73097e319 20 // Die Start-Taste ein 3.mal betätigen:
philipp19961 0:05d73097e319 21 // Alle LEDs aus.
philipp19961 0:05d73097e319 22
philipp19961 1:c5769cd78933 23 volatile unsigned int event=0;
philipp19961 1:c5769cd78933 24 volatile int led=0;
philipp19961 0:05d73097e319 25
philipp19961 2:d4fab8f3f21f 26 void switchled();
philipp19961 2:d4fab8f3f21f 27 void blinkled();
philipp19961 0:05d73097e319 28
philipp19961 2:d4fab8f3f21f 29 void ledsSwitchTimer()
philipp19961 0:05d73097e319 30 {
philipp19961 2:d4fab8f3f21f 31 tick.attach(&switchled, 0.2);
philipp19961 0:05d73097e319 32 }
philipp19961 0:05d73097e319 33
philipp19961 2:d4fab8f3f21f 34 void ledsBlinkTimer()
philipp19961 2:d4fab8f3f21f 35 {
philipp19961 2:d4fab8f3f21f 36 tick.attach(&blinkled, 0.2);
philipp19961 2:d4fab8f3f21f 37 }
philipp19961 2:d4fab8f3f21f 38
philipp19961 2:d4fab8f3f21f 39 void stopTimer()
philipp19961 0:05d73097e319 40 {
philipp19961 0:05d73097e319 41 led1 = 0;
philipp19961 0:05d73097e319 42 led2 = 0;
philipp19961 0:05d73097e319 43 led3 = 0;
philipp19961 0:05d73097e319 44 led4 = 0;
philipp19961 1:c5769cd78933 45 tick.detach();
philipp19961 0:05d73097e319 46 }
philipp19961 0:05d73097e319 47
philipp19961 2:d4fab8f3f21f 48 void ledsEin()
philipp19961 2:d4fab8f3f21f 49 {
philipp19961 2:d4fab8f3f21f 50 led1 = 1;
philipp19961 2:d4fab8f3f21f 51 led2 = 1;
philipp19961 2:d4fab8f3f21f 52 led3 = 1;
philipp19961 2:d4fab8f3f21f 53 led4 = 1;
philipp19961 2:d4fab8f3f21f 54 }
philipp19961 2:d4fab8f3f21f 55
philipp19961 2:d4fab8f3f21f 56 void ledsTogglen()
philipp19961 0:05d73097e319 57 {
philipp19961 0:05d73097e319 58 led1 = !led1;
philipp19961 0:05d73097e319 59 led2 = !led2;
philipp19961 0:05d73097e319 60 led3 = !led3;
philipp19961 0:05d73097e319 61 led4 = !led4;
philipp19961 0:05d73097e319 62 }
philipp19961 0:05d73097e319 63
philipp19961 1:c5769cd78933 64 void switchled()
philipp19961 1:c5769cd78933 65 {
philipp19961 1:c5769cd78933 66 switch(led)
philipp19961 1:c5769cd78933 67 {
philipp19961 1:c5769cd78933 68 case 0:
philipp19961 1:c5769cd78933 69 led1 = 1;
philipp19961 1:c5769cd78933 70 break;
philipp19961 1:c5769cd78933 71 case 1:
philipp19961 1:c5769cd78933 72 led1 = 0;
philipp19961 1:c5769cd78933 73 led2 = 1;
philipp19961 1:c5769cd78933 74 break;
philipp19961 1:c5769cd78933 75 case 2:
philipp19961 1:c5769cd78933 76 led2 = 0;
philipp19961 1:c5769cd78933 77 led3 = 1;
philipp19961 1:c5769cd78933 78 break;
philipp19961 1:c5769cd78933 79 case 3:
philipp19961 1:c5769cd78933 80 led3 = 0;
philipp19961 1:c5769cd78933 81 led4 = 1;
philipp19961 1:c5769cd78933 82 break;
philipp19961 1:c5769cd78933 83 case 4:
philipp19961 1:c5769cd78933 84 led4 = 0;
philipp19961 1:c5769cd78933 85 led = -1;
philipp19961 1:c5769cd78933 86 break;
philipp19961 1:c5769cd78933 87 }
philipp19961 1:c5769cd78933 88
philipp19961 1:c5769cd78933 89 led++;
philipp19961 1:c5769cd78933 90 }
philipp19961 1:c5769cd78933 91
philipp19961 2:d4fab8f3f21f 92 void blinkled()
philipp19961 0:05d73097e319 93 {
philipp19961 0:05d73097e319 94 ledsTogglen();
philipp19961 0:05d73097e319 95 }
philipp19961 0:05d73097e319 96
philipp19961 1:c5769cd78933 97 void doEvent()
philipp19961 0:05d73097e319 98 {
philipp19961 1:c5769cd78933 99 switch(event)
philipp19961 1:c5769cd78933 100 {
philipp19961 1:c5769cd78933 101 case 0:
philipp19961 1:c5769cd78933 102 led1 = 0;
philipp19961 1:c5769cd78933 103 led2 = 0;
philipp19961 1:c5769cd78933 104 led3 = 0;
philipp19961 1:c5769cd78933 105 led4 = 0;
philipp19961 1:c5769cd78933 106 break;
philipp19961 1:c5769cd78933 107 case 1:
philipp19961 1:c5769cd78933 108 led = 0;
philipp19961 2:d4fab8f3f21f 109 ledsSwitchTimer();
philipp19961 1:c5769cd78933 110 break;
philipp19961 1:c5769cd78933 111 case 2:
philipp19961 1:c5769cd78933 112 stopTimer();
philipp19961 1:c5769cd78933 113 ledsTogglen();
philipp19961 1:c5769cd78933 114 break;
philipp19961 1:c5769cd78933 115 case 3:
philipp19961 2:d4fab8f3f21f 116 ledsBlinkTimer();
philipp19961 1:c5769cd78933 117 break;
philipp19961 1:c5769cd78933 118 case 4:
philipp19961 1:c5769cd78933 119 stopTimer();
philipp19961 1:c5769cd78933 120 event = 0;
philipp19961 1:c5769cd78933 121 break;
philipp19961 1:c5769cd78933 122 default:
philipp19961 1:c5769cd78933 123 break;
philipp19961 1:c5769cd78933 124 }
philipp19961 0:05d73097e319 125 }
philipp19961 0:05d73097e319 126
philipp19961 0:05d73097e319 127 int main()
philipp19961 1:c5769cd78933 128 {
philipp19961 1:c5769cd78933 129 while(1) {
philipp19961 1:c5769cd78933 130 if (button.rising()) {
philipp19961 1:c5769cd78933 131 event++;
philipp19961 1:c5769cd78933 132 doEvent();
philipp19961 1:c5769cd78933 133 }
philipp19961 1:c5769cd78933 134 }
philipp19961 0:05d73097e319 135 }
philipp19961 0:05d73097e319 136
philipp19961 0:05d73097e319 137