![](/media/cache/group/HIMBED0.jpg.50x50_q85.jpg)
Ich habe bei der EventKlasse das EOT auf " " geändert, damit das Beenden der Kommunikation mit dem "." funktioniert. Im großen und ganzem müsste es funktionieren.
Dependencies: mbed
main.cpp@0:a321a9d74411, 2016-06-23 (annotated)
- Committer:
- KagerJ
- Date:
- Thu Jun 23 07:35:38 2016 +0000
- Revision:
- 0:a321a9d74411
Dieses Programm m?sste im gro?en und ganzem funktionieren.; Wichtig: Das EOT der EventKlasse habe ich den "." mit einem " " ersetzt, damit es funktioniert.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
KagerJ | 0:a321a9d74411 | 1 | #include "mbed.h" |
KagerJ | 0:a321a9d74411 | 2 | #include "SerialEvent.h" |
KagerJ | 0:a321a9d74411 | 3 | |
KagerJ | 0:a321a9d74411 | 4 | Serial pc(USBTX,USBRX); |
KagerJ | 0:a321a9d74411 | 5 | SerialEvent pc1(USBTX,USBRX); |
KagerJ | 0:a321a9d74411 | 6 | PwmOut red(p36); |
KagerJ | 0:a321a9d74411 | 7 | PwmOut green(p5); |
KagerJ | 0:a321a9d74411 | 8 | PwmOut blue(p34); |
KagerJ | 0:a321a9d74411 | 9 | DigitalOut led1(LED1); |
KagerJ | 0:a321a9d74411 | 10 | DigitalOut led2(LED2); |
KagerJ | 0:a321a9d74411 | 11 | DigitalOut led3(LED3); |
KagerJ | 0:a321a9d74411 | 12 | DigitalOut led4(LED4); |
KagerJ | 0:a321a9d74411 | 13 | DigitalOut led6(P1_0); |
KagerJ | 0:a321a9d74411 | 14 | Timer timer; |
KagerJ | 0:a321a9d74411 | 15 | Ticker tick1; |
KagerJ | 0:a321a9d74411 | 16 | Ticker tick2; |
KagerJ | 0:a321a9d74411 | 17 | Ticker tick3; |
KagerJ | 0:a321a9d74411 | 18 | Ticker tick4; |
KagerJ | 0:a321a9d74411 | 19 | |
KagerJ | 0:a321a9d74411 | 20 | // States |
KagerJ | 0:a321a9d74411 | 21 | //typedef enum {ST_EIN, ST_AUS, ST_ERROR, ST_STATE1} nextState; |
KagerJ | 0:a321a9d74411 | 22 | // alternativ |
KagerJ | 0:a321a9d74411 | 23 | const int ST_BOOT = 0; |
KagerJ | 0:a321a9d74411 | 24 | const int ST_AUTH = 1; |
KagerJ | 0:a321a9d74411 | 25 | const int ST_STRING = 2; |
KagerJ | 0:a321a9d74411 | 26 | const int ST_RECEIVE = 3; |
KagerJ | 0:a321a9d74411 | 27 | const int ST_COMP = 4; |
KagerJ | 0:a321a9d74411 | 28 | const int ST_SUCCESS = 5; |
KagerJ | 0:a321a9d74411 | 29 | const int ST_FAIL = 6; |
KagerJ | 0:a321a9d74411 | 30 | const int ST_END = 7; |
KagerJ | 0:a321a9d74411 | 31 | char inString[STRMAX]; |
KagerJ | 0:a321a9d74411 | 32 | char stringRND[STRMAX]; |
KagerJ | 0:a321a9d74411 | 33 | char message[STRMAX]; |
KagerJ | 0:a321a9d74411 | 34 | int line= 0; |
KagerJ | 0:a321a9d74411 | 35 | int tries= 0 ; |
KagerJ | 0:a321a9d74411 | 36 | int poss = 0; |
KagerJ | 0:a321a9d74411 | 37 | void blink(); |
KagerJ | 0:a321a9d74411 | 38 | void gen_random(char *s, const int len) |
KagerJ | 0:a321a9d74411 | 39 | { |
KagerJ | 0:a321a9d74411 | 40 | static const char alphanum[] = |
KagerJ | 0:a321a9d74411 | 41 | "0123456789" |
KagerJ | 0:a321a9d74411 | 42 | "ABCDEFGHIJKLMNOPQRSTUVWXYZ" |
KagerJ | 0:a321a9d74411 | 43 | "abcdefghijklmnopqrstuvwxyz"; |
KagerJ | 0:a321a9d74411 | 44 | |
KagerJ | 0:a321a9d74411 | 45 | for (int i = 0; i < len; ++i) { |
KagerJ | 0:a321a9d74411 | 46 | s[i] = alphanum[rand() % (sizeof(alphanum) - 1)]; |
KagerJ | 0:a321a9d74411 | 47 | } |
KagerJ | 0:a321a9d74411 | 48 | } |
KagerJ | 0:a321a9d74411 | 49 | ////----------------------------------Ticker Klasse--------------------------------- |
KagerJ | 0:a321a9d74411 | 50 | class Blinker { |
KagerJ | 0:a321a9d74411 | 51 | public: |
KagerJ | 0:a321a9d74411 | 52 | Blinker(PinName pin) : _pin(pin) { |
KagerJ | 0:a321a9d74411 | 53 | _pin = 0; |
KagerJ | 0:a321a9d74411 | 54 | } |
KagerJ | 0:a321a9d74411 | 55 | void blink() { |
KagerJ | 0:a321a9d74411 | 56 | _pin = !_pin; |
KagerJ | 0:a321a9d74411 | 57 | } |
KagerJ | 0:a321a9d74411 | 58 | private: |
KagerJ | 0:a321a9d74411 | 59 | DigitalOut _pin; |
KagerJ | 0:a321a9d74411 | 60 | }; |
KagerJ | 0:a321a9d74411 | 61 | Blinker t1(LED1); |
KagerJ | 0:a321a9d74411 | 62 | Blinker t2(LED2); |
KagerJ | 0:a321a9d74411 | 63 | Blinker t3(LED3); |
KagerJ | 0:a321a9d74411 | 64 | Blinker t4(LED4); |
KagerJ | 0:a321a9d74411 | 65 | // ---------------- Event Klasse -------------------------- |
KagerJ | 0:a321a9d74411 | 66 | class SwEvent |
KagerJ | 0:a321a9d74411 | 67 | { |
KagerJ | 0:a321a9d74411 | 68 | InterruptIn _isr; |
KagerJ | 0:a321a9d74411 | 69 | bool _pressed; |
KagerJ | 0:a321a9d74411 | 70 | void _RisingISR(); |
KagerJ | 0:a321a9d74411 | 71 | |
KagerJ | 0:a321a9d74411 | 72 | public: |
KagerJ | 0:a321a9d74411 | 73 | SwEvent(PinName pin) : _isr(pin) { |
KagerJ | 0:a321a9d74411 | 74 | _pressed = false; |
KagerJ | 0:a321a9d74411 | 75 | } |
KagerJ | 0:a321a9d74411 | 76 | int CheckFlag(); // dies muss im do-Zweig (while(true) Schleife) ständig abgefragt werden |
KagerJ | 0:a321a9d74411 | 77 | void InitIsr(); |
KagerJ | 0:a321a9d74411 | 78 | }; |
KagerJ | 0:a321a9d74411 | 79 | |
KagerJ | 0:a321a9d74411 | 80 | int SwEvent::CheckFlag() |
KagerJ | 0:a321a9d74411 | 81 | { |
KagerJ | 0:a321a9d74411 | 82 | if( _pressed ) { |
KagerJ | 0:a321a9d74411 | 83 | _pressed = false; |
KagerJ | 0:a321a9d74411 | 84 | return 1; |
KagerJ | 0:a321a9d74411 | 85 | } |
KagerJ | 0:a321a9d74411 | 86 | return 0; |
KagerJ | 0:a321a9d74411 | 87 | } |
KagerJ | 0:a321a9d74411 | 88 | |
KagerJ | 0:a321a9d74411 | 89 | void SwEvent::InitIsr() |
KagerJ | 0:a321a9d74411 | 90 | { |
KagerJ | 0:a321a9d74411 | 91 | _isr.rise(this, &SwEvent::_RisingISR); |
KagerJ | 0:a321a9d74411 | 92 | } |
KagerJ | 0:a321a9d74411 | 93 | |
KagerJ | 0:a321a9d74411 | 94 | void SwEvent::_RisingISR() |
KagerJ | 0:a321a9d74411 | 95 | { |
KagerJ | 0:a321a9d74411 | 96 | if( _isr.read() ) |
KagerJ | 0:a321a9d74411 | 97 | _pressed = true; |
KagerJ | 0:a321a9d74411 | 98 | } |
KagerJ | 0:a321a9d74411 | 99 | |
KagerJ | 0:a321a9d74411 | 100 | SwEvent sw1(P0_10); |
KagerJ | 0:a321a9d74411 | 101 | |
KagerJ | 0:a321a9d74411 | 102 | // ----------------- Stm Klasse ----------------------------- |
KagerJ | 0:a321a9d74411 | 103 | class Stm |
KagerJ | 0:a321a9d74411 | 104 | { |
KagerJ | 0:a321a9d74411 | 105 | public: |
KagerJ | 0:a321a9d74411 | 106 | Stm() { |
KagerJ | 0:a321a9d74411 | 107 | state=ST_BOOT; |
KagerJ | 0:a321a9d74411 | 108 | } |
KagerJ | 0:a321a9d74411 | 109 | |
KagerJ | 0:a321a9d74411 | 110 | void Boot(); |
KagerJ | 0:a321a9d74411 | 111 | void Auth(); |
KagerJ | 0:a321a9d74411 | 112 | void String(); |
KagerJ | 0:a321a9d74411 | 113 | void Receive(); |
KagerJ | 0:a321a9d74411 | 114 | void Comp(); |
KagerJ | 0:a321a9d74411 | 115 | void Success(); |
KagerJ | 0:a321a9d74411 | 116 | void Fail(); |
KagerJ | 0:a321a9d74411 | 117 | void End(); |
KagerJ | 0:a321a9d74411 | 118 | |
KagerJ | 0:a321a9d74411 | 119 | int state; |
KagerJ | 0:a321a9d74411 | 120 | }; |
KagerJ | 0:a321a9d74411 | 121 | |
KagerJ | 0:a321a9d74411 | 122 | |
KagerJ | 0:a321a9d74411 | 123 | void Stm::Boot() |
KagerJ | 0:a321a9d74411 | 124 | { tick1.detach(); |
KagerJ | 0:a321a9d74411 | 125 | tick2.detach(); |
KagerJ | 0:a321a9d74411 | 126 | tick3.detach(); |
KagerJ | 0:a321a9d74411 | 127 | tick4.detach(); |
KagerJ | 0:a321a9d74411 | 128 | pc.printf("Hello\n"); |
KagerJ | 0:a321a9d74411 | 129 | timer.start(); |
KagerJ | 0:a321a9d74411 | 130 | while(true) { |
KagerJ | 0:a321a9d74411 | 131 | led1 = led2 = led3 = led4 = 0; |
KagerJ | 0:a321a9d74411 | 132 | |
KagerJ | 0:a321a9d74411 | 133 | if(timer.read() >= 1) { |
KagerJ | 0:a321a9d74411 | 134 | state = ST_AUTH; |
KagerJ | 0:a321a9d74411 | 135 | led1 = 1; |
KagerJ | 0:a321a9d74411 | 136 | timer.stop(); |
KagerJ | 0:a321a9d74411 | 137 | timer.reset(); |
KagerJ | 0:a321a9d74411 | 138 | return; |
KagerJ | 0:a321a9d74411 | 139 | } |
KagerJ | 0:a321a9d74411 | 140 | } |
KagerJ | 0:a321a9d74411 | 141 | } |
KagerJ | 0:a321a9d74411 | 142 | |
KagerJ | 0:a321a9d74411 | 143 | void Stm::Auth() |
KagerJ | 0:a321a9d74411 | 144 | { |
KagerJ | 0:a321a9d74411 | 145 | |
KagerJ | 0:a321a9d74411 | 146 | |
KagerJ | 0:a321a9d74411 | 147 | pc.printf("Press Sw 2\n"); |
KagerJ | 0:a321a9d74411 | 148 | while(true) { |
KagerJ | 0:a321a9d74411 | 149 | led6 = 1; |
KagerJ | 0:a321a9d74411 | 150 | if(sw1.CheckFlag()) { |
KagerJ | 0:a321a9d74411 | 151 | led6 = 0; |
KagerJ | 0:a321a9d74411 | 152 | state = ST_STRING; |
KagerJ | 0:a321a9d74411 | 153 | return; |
KagerJ | 0:a321a9d74411 | 154 | } |
KagerJ | 0:a321a9d74411 | 155 | |
KagerJ | 0:a321a9d74411 | 156 | } |
KagerJ | 0:a321a9d74411 | 157 | } |
KagerJ | 0:a321a9d74411 | 158 | |
KagerJ | 0:a321a9d74411 | 159 | |
KagerJ | 0:a321a9d74411 | 160 | void Stm::String() |
KagerJ | 0:a321a9d74411 | 161 | { |
KagerJ | 0:a321a9d74411 | 162 | tick1.detach(); |
KagerJ | 0:a321a9d74411 | 163 | tick2.detach(); |
KagerJ | 0:a321a9d74411 | 164 | tick3.detach(); |
KagerJ | 0:a321a9d74411 | 165 | tick4.detach(); |
KagerJ | 0:a321a9d74411 | 166 | gen_random(stringRND,5); |
KagerJ | 0:a321a9d74411 | 167 | pc.printf("RND String lautet: %s \n", stringRND); |
KagerJ | 0:a321a9d74411 | 168 | pc.printf("Geben Sie ihn nun erneut ein: \n"); |
KagerJ | 0:a321a9d74411 | 169 | timer.start(); |
KagerJ | 0:a321a9d74411 | 170 | while(true) { |
KagerJ | 0:a321a9d74411 | 171 | led1 = 0; |
KagerJ | 0:a321a9d74411 | 172 | led2 = 1; |
KagerJ | 0:a321a9d74411 | 173 | |
KagerJ | 0:a321a9d74411 | 174 | //s[len] = 0; |
KagerJ | 0:a321a9d74411 | 175 | state = ST_RECEIVE; |
KagerJ | 0:a321a9d74411 | 176 | return; |
KagerJ | 0:a321a9d74411 | 177 | } |
KagerJ | 0:a321a9d74411 | 178 | } |
KagerJ | 0:a321a9d74411 | 179 | |
KagerJ | 0:a321a9d74411 | 180 | |
KagerJ | 0:a321a9d74411 | 181 | void Stm::Receive() |
KagerJ | 0:a321a9d74411 | 182 | { |
KagerJ | 0:a321a9d74411 | 183 | tick1.detach(); |
KagerJ | 0:a321a9d74411 | 184 | tick2.detach(); |
KagerJ | 0:a321a9d74411 | 185 | tick3.detach(); |
KagerJ | 0:a321a9d74411 | 186 | tick4.detach(); |
KagerJ | 0:a321a9d74411 | 187 | //pc1.pc_recv(); |
KagerJ | 0:a321a9d74411 | 188 | if(pc1.checkFlag()) { |
KagerJ | 0:a321a9d74411 | 189 | pc1.getString(inString); |
KagerJ | 0:a321a9d74411 | 190 | //pc1.scanf(inString); |
KagerJ | 0:a321a9d74411 | 191 | pc.printf("%s\n", inString); |
KagerJ | 0:a321a9d74411 | 192 | state = ST_COMP; |
KagerJ | 0:a321a9d74411 | 193 | return; |
KagerJ | 0:a321a9d74411 | 194 | |
KagerJ | 0:a321a9d74411 | 195 | } |
KagerJ | 0:a321a9d74411 | 196 | } |
KagerJ | 0:a321a9d74411 | 197 | |
KagerJ | 0:a321a9d74411 | 198 | void Stm::Comp() |
KagerJ | 0:a321a9d74411 | 199 | { |
KagerJ | 0:a321a9d74411 | 200 | tick1.detach(); |
KagerJ | 0:a321a9d74411 | 201 | tick2.detach(); |
KagerJ | 0:a321a9d74411 | 202 | tick3.detach(); |
KagerJ | 0:a321a9d74411 | 203 | tick4.detach(); |
KagerJ | 0:a321a9d74411 | 204 | if(strncmp(stringRND,inString,5) == 0) { |
KagerJ | 0:a321a9d74411 | 205 | pc.printf("Sie haben %f Sekunden fuer Ihre Authentifikation benoetigt\n", timer.read()); |
KagerJ | 0:a321a9d74411 | 206 | state = ST_SUCCESS; |
KagerJ | 0:a321a9d74411 | 207 | return; |
KagerJ | 0:a321a9d74411 | 208 | } else if( tries == 3) { |
KagerJ | 0:a321a9d74411 | 209 | state = ST_END; |
KagerJ | 0:a321a9d74411 | 210 | return; |
KagerJ | 0:a321a9d74411 | 211 | } else { |
KagerJ | 0:a321a9d74411 | 212 | tries++; |
KagerJ | 0:a321a9d74411 | 213 | poss = 4 - tries; |
KagerJ | 0:a321a9d74411 | 214 | pc.printf("Sie haben noch %d Moeglichkeiten, um sich richtig zu authentifizieren",poss); |
KagerJ | 0:a321a9d74411 | 215 | state = ST_RECEIVE; |
KagerJ | 0:a321a9d74411 | 216 | } |
KagerJ | 0:a321a9d74411 | 217 | } |
KagerJ | 0:a321a9d74411 | 218 | |
KagerJ | 0:a321a9d74411 | 219 | void Stm::Success() |
KagerJ | 0:a321a9d74411 | 220 | { |
KagerJ | 0:a321a9d74411 | 221 | tick1.detach(); |
KagerJ | 0:a321a9d74411 | 222 | tick2.detach(); |
KagerJ | 0:a321a9d74411 | 223 | tick3.detach(); |
KagerJ | 0:a321a9d74411 | 224 | tick4.detach(); |
KagerJ | 0:a321a9d74411 | 225 | printf("WELCOME!"); |
KagerJ | 0:a321a9d74411 | 226 | led1 = led2 = led3 = led4 = 1; |
KagerJ | 0:a321a9d74411 | 227 | //message[STRMAX] = '\0'; |
KagerJ | 0:a321a9d74411 | 228 | while(true) { |
KagerJ | 0:a321a9d74411 | 229 | if(pc1.checkFlag()) { |
KagerJ | 0:a321a9d74411 | 230 | pc1.getString(message); |
KagerJ | 0:a321a9d74411 | 231 | line++; |
KagerJ | 0:a321a9d74411 | 232 | pc.printf("%d:%d>%s\n",line,strlen(message),message); |
KagerJ | 0:a321a9d74411 | 233 | if(message[0] == '.') { |
KagerJ | 0:a321a9d74411 | 234 | state = ST_AUTH; |
KagerJ | 0:a321a9d74411 | 235 | return; |
KagerJ | 0:a321a9d74411 | 236 | } |
KagerJ | 0:a321a9d74411 | 237 | } |
KagerJ | 0:a321a9d74411 | 238 | } |
KagerJ | 0:a321a9d74411 | 239 | } |
KagerJ | 0:a321a9d74411 | 240 | |
KagerJ | 0:a321a9d74411 | 241 | void Stm::Fail() |
KagerJ | 0:a321a9d74411 | 242 | { |
KagerJ | 0:a321a9d74411 | 243 | tick1.detach(); |
KagerJ | 0:a321a9d74411 | 244 | tick2.detach(); |
KagerJ | 0:a321a9d74411 | 245 | tick3.detach(); |
KagerJ | 0:a321a9d74411 | 246 | tick4.detach(); |
KagerJ | 0:a321a9d74411 | 247 | while(true) { |
KagerJ | 0:a321a9d74411 | 248 | |
KagerJ | 0:a321a9d74411 | 249 | led1 = led3 = led4 = 0; |
KagerJ | 0:a321a9d74411 | 250 | led2 = 1; |
KagerJ | 0:a321a9d74411 | 251 | state = ST_END; |
KagerJ | 0:a321a9d74411 | 252 | return; |
KagerJ | 0:a321a9d74411 | 253 | } |
KagerJ | 0:a321a9d74411 | 254 | } |
KagerJ | 0:a321a9d74411 | 255 | |
KagerJ | 0:a321a9d74411 | 256 | |
KagerJ | 0:a321a9d74411 | 257 | void Stm::End() |
KagerJ | 0:a321a9d74411 | 258 | { |
KagerJ | 0:a321a9d74411 | 259 | //led1 = led2 = led3 = led4 = 1; |
KagerJ | 0:a321a9d74411 | 260 | tick1.attach(&t1, &Blinker::blink, 0.2); |
KagerJ | 0:a321a9d74411 | 261 | tick2.attach(&t2, &Blinker::blink, 0.2); |
KagerJ | 0:a321a9d74411 | 262 | tick3.attach(&t3, &Blinker::blink, 0.2); |
KagerJ | 0:a321a9d74411 | 263 | tick4.attach(&t4, &Blinker::blink, 0.2); |
KagerJ | 0:a321a9d74411 | 264 | /*while(true){ |
KagerJ | 0:a321a9d74411 | 265 | if(timer.read_ms()%200 == 0){ |
KagerJ | 0:a321a9d74411 | 266 | led1 =~ led1; |
KagerJ | 0:a321a9d74411 | 267 | led2 =~ led2; |
KagerJ | 0:a321a9d74411 | 268 | led3 =~ led3; |
KagerJ | 0:a321a9d74411 | 269 | led4 =~ led4; |
KagerJ | 0:a321a9d74411 | 270 | } |
KagerJ | 0:a321a9d74411 | 271 | }*/ |
KagerJ | 0:a321a9d74411 | 272 | tries = 0; |
KagerJ | 0:a321a9d74411 | 273 | pc.printf("%d", timer.read()); |
KagerJ | 0:a321a9d74411 | 274 | state = ST_AUTH; |
KagerJ | 0:a321a9d74411 | 275 | return; |
KagerJ | 0:a321a9d74411 | 276 | } |
KagerJ | 0:a321a9d74411 | 277 | |
KagerJ | 0:a321a9d74411 | 278 | |
KagerJ | 0:a321a9d74411 | 279 | |
KagerJ | 0:a321a9d74411 | 280 | |
KagerJ | 0:a321a9d74411 | 281 | Stm stm; |
KagerJ | 0:a321a9d74411 | 282 | |
KagerJ | 0:a321a9d74411 | 283 | void stateMachine() |
KagerJ | 0:a321a9d74411 | 284 | { |
KagerJ | 0:a321a9d74411 | 285 | switch (stm.state) { |
KagerJ | 0:a321a9d74411 | 286 | case ST_BOOT: |
KagerJ | 0:a321a9d74411 | 287 | stm.Boot(); |
KagerJ | 0:a321a9d74411 | 288 | break; |
KagerJ | 0:a321a9d74411 | 289 | case ST_AUTH: |
KagerJ | 0:a321a9d74411 | 290 | stm.Auth(); |
KagerJ | 0:a321a9d74411 | 291 | break; |
KagerJ | 0:a321a9d74411 | 292 | case ST_STRING: |
KagerJ | 0:a321a9d74411 | 293 | stm.String(); |
KagerJ | 0:a321a9d74411 | 294 | break; |
KagerJ | 0:a321a9d74411 | 295 | case ST_RECEIVE: |
KagerJ | 0:a321a9d74411 | 296 | stm.Receive(); |
KagerJ | 0:a321a9d74411 | 297 | break; |
KagerJ | 0:a321a9d74411 | 298 | case ST_COMP: |
KagerJ | 0:a321a9d74411 | 299 | stm.Comp(); |
KagerJ | 0:a321a9d74411 | 300 | break; |
KagerJ | 0:a321a9d74411 | 301 | case ST_SUCCESS: |
KagerJ | 0:a321a9d74411 | 302 | stm.Success(); |
KagerJ | 0:a321a9d74411 | 303 | break; |
KagerJ | 0:a321a9d74411 | 304 | case ST_FAIL: |
KagerJ | 0:a321a9d74411 | 305 | stm.Fail(); |
KagerJ | 0:a321a9d74411 | 306 | break; |
KagerJ | 0:a321a9d74411 | 307 | case ST_END: |
KagerJ | 0:a321a9d74411 | 308 | stm.End(); |
KagerJ | 0:a321a9d74411 | 309 | break; |
KagerJ | 0:a321a9d74411 | 310 | |
KagerJ | 0:a321a9d74411 | 311 | |
KagerJ | 0:a321a9d74411 | 312 | } |
KagerJ | 0:a321a9d74411 | 313 | } |
KagerJ | 0:a321a9d74411 | 314 | |
KagerJ | 0:a321a9d74411 | 315 | int main() |
KagerJ | 0:a321a9d74411 | 316 | { |
KagerJ | 0:a321a9d74411 | 317 | //printf("Hello STM\n"); |
KagerJ | 0:a321a9d74411 | 318 | sw1.InitIsr(); |
KagerJ | 0:a321a9d74411 | 319 | |
KagerJ | 0:a321a9d74411 | 320 | red=green=1; |
KagerJ | 0:a321a9d74411 | 321 | while(1) { |
KagerJ | 0:a321a9d74411 | 322 | stateMachine(); |
KagerJ | 0:a321a9d74411 | 323 | } |
KagerJ | 0:a321a9d74411 | 324 | } |