Hi,
Genau so.... oder bleibt er low nur solange IR-signal empfangen wird?
Gruß
Dirk
hi,
nun habe ich mir das leben etwas einfacher gemacht, mit diesem
Code:while(true) { for(j = 0; j < 120; j+=10) { writeChar('\n'); writeInteger(j, DEC); writeChar('\n'); uint8_t i = 0; for(i = 0; i < 199; i++) { temp_IR[i] = read_IR_value(); feld_IR[i] = temp_IR[i]; writeIntegerLength(temp_IR[i],DEC,4); if(i % 12 == 0) writeChar('\n'); else writeString_P(" | "); mSleep(20+j); } } /**************************/ uint8_t key_1 = getMultiIOPressedButtonNumber(); key_1 = getMultiIOPressedButtonNumber(); if(key_1 != 0) break; /**************************/ }
gewann ich "auf einen rutsch" diese ausgabe:
es hätte sicher mehrere auswahlmöglichkeiten für die größe des "mSleep" gegeben, ich habe mich für die variante 50 entschieden - die gefiel mir in ihrer regelmäßigkeit am besten - jetzt blinkt die kontroll-LED auf der bake mit diesem
deckungsgleich - ca. 4x pro sekunde - zusammen mit der roten LED an der multiIO auf eine entfernung von 4m...Code:while(true) { temp = read_IR_value(); mSleep(50); if (temp == 0) { setMultiIOLED3(1); setMultiIOLED3(0); } /**************************/ uint8_t key_1 = getMultiIOPressedButtonNumber(); key_1 = getMultiIOPressedButtonNumber(); if(key_1 != 0) break; /**************************/ }![]()
gruß inka
hi,
erkenntnisse aus zahllosen tests:
die IR bake verursacht nach wie vor reflektionen die den empfänger irritieren. Sie sind schwächer als der direkter strahl und der empfang der reflektionen am RP6 ist unregelmässig. Dies habe ich in folgenden änderungen versucht zu berücksichtigen.
hardware:
strahlbegrenzung an der bake![]()
hat eigentlich nichts gebracht...
abschirmung des IR-empfängers am RP6
entstand sukzessive, zuerst der hintere reflektor am IR-empfänger, dann das dickere rohr (ist innen schwarz ausgekleidet), dann der zweiter reflektor mit der kleineren öffnung zum sender hin, dann das kleinere röhrchen, um die eintrittsöffnung noch ein bischen zu verkleinern. Wahrscheinlich funktioniert die hindernissmessung nun nicht mehr, aber darum kümmere ich mich später.
Der IR-empfang ist bei direkter ausrichtung auf die sendende bake noch gut, die empfansfrequenz unverändert, abfrage per software erfolgt immer noch im 50ms rhythmus. Bei einer ausrichtung weg von der bake ist kein empfang, wenn der Rp schräg zu bake steht kommt immer noch ab und zu mal was durch.
software:
der code - so wie er ist (also mit auskommentierter else-zeilen mit dem rotate befehl) - bewirkt, dass der RP6 nach jeweils 10 empfangenen signalen 100mm fährt, die abfrage der 10 empfangegen signale möchte ich noch zeitabhängig prüfen (t soll <10*51ms sein), ich müsste also die stopwatches vor der schleife und nach der schleife in zwei variablen speichern, diese dann voneinander abziehen und die weiterfahrt davon abhängig machen ob die 10 signale innerhalb der ca. 520ms empfangen wurden. Da bastle ich noch dranCode:case 3:// setLEDs(0b0100); writeString_P("\n\n Suche der bake\n\n"); writeChar('\n'); initRP6Control(); initLCD(); startStopwatch3(); while(true) { while(true) { if(getStopwatch3() > 50) { temp = read_IR_value(); /********************/ uint8_t i = 0; for(i = 0; i < 199; i++) { // writeIntegerLength(temp,DEC,4); writeInteger(getStopwatch3(), DEC); if(i % 12 == 0) { writeChar('\n'); setStopwatch2(0); } else { writeString_P(" | "); setStopwatch2(0); } } /*******************/ if (temp == 0) { setMultiIOLED3(1); setMultiIOLED3(0); if (t<10) { t++; setStopwatch3(0); if (t == 10) { move(100, FWD, DIST_MM(100), false); setStopwatch3(0); t=0; } } } /* else { setMultiIOLED1(1); setMultiIOLED1(0); rotate(80, RIGHT, 1, false); setStopwatch3(0); } */ } } /**************************/ uint8_t key_1; key_1 = getMultiIOPressedButtonNumber(); if(key_1 != 0) break; /**************************/ } break;
könnte die abfrage so aussehen -- if ((t==10) && (tg<520)) --? Ich werde sicher auch noch die passenden stellen für das speichern (und rücksetzen) der zwei variablen t1 und t2 finden, bisher klappte das nicht so ganz
was mir mehr sorgen bereitet ist das zusammenspiel mit dem rotate befehl...
Wenn ich die else zeilen wieder einschalte, leuchtet nur noch die LED1 auf der multiIO und der RP6 dreht sich im kreis. Nur ganz sporadisch komt ein- zwei- mal ein auifleuchten der LED3, mehr aber nicht. Hängt das wieder mit den stopwatches zusammen?
ich habe mir folgendes im terminal ausgeben lassen, werde daraus aber nicht schlau:
Code:Suche der bake (ohne rotate) 51 51 | 53 | 54 | 55 | 57 | 58 | 59 | 61 | 62 | 63 | 64 | 66 67 | 68 | 69 | 70 | 72 | 73 | 74 | 76 | 77 | 78 | 80 | 81 82 | 83 | 84 | 86 | 87 | 88 | 89 | 91 | 92 | 93 | 95 | 96 97 | 98 | 99 | 101 | 102 | 104 | 105 | 107 | 108 | 110 | 112 | 113 114 | 116 | 117 | 119 | 120 | 122 | 124 | 125 | 127 | 128 | 130 | 131 132 | 134 | 135 | 137 | 139 | 140 | 142 | 143 | 145 | 146 | 148 | 150 151 | 152 | 154 | 155 | 157 | 158 | 160 | 161 | 163 | 165 | 166 | 168 169 | 170 | 172 | 173 | 175 | 177 | 178 | 180 | 181 | 183 | 184 | 186 187 | 189 | 190 | 192 | 193 | 195 | 196 | 198 | 199 | 201 | 203 | 204 205 | 207 | 208 | 210 | 211 | 213 | 215 | 216 | 218 | 219 | 221 | 222 223 | 225 | 226 | 228 | 230 | 231 | 233 | 234 | 236 | 237 | 239 | 241 242 | 243 | 245 | 246 | 248 | 249 | 251 | 252 | 254 | 256 | 257 | 259 260 | 261 | 263 | 264 | 266 | 268 | 269 | 271 | 272 | 274 | 275 | 277 278 | 280 | 281 | 283 | 284 | 286 | 287 | 289 | 290 | 292 | 294 | 295 296 | 298 | 299 | 301 | 302 | 304 | 306 | 307 | 309 | 310 | 312 | 313 314 | 316 | 317 | 319 | 321 | 322 | 324 | 325 | 327 | 328 | 330 | 332 333 | 334 | 336 | 337 | 339 | 340 | 343 343 | 345 | 346 | 348 | 349 | 351 | 353 | 354 | 356 | 357 | 359 | 360 361 | 363 | 364 | 366 | 368 | 369 | 371 | 372 | 374 | 375 | 377 | 379 380 | 381 | 383 | 384 | 386 | 387 | 389 | 390 | 392 | 394 | 395 | 397 398 | 399 | 401 | 402 | 404 | 406 | 407 | 409 | 410 | 412 | 413 | 415 416 | 418 | 419 | 421 | 422 | 424 | 425 | 427 | 428 | 430 | 432 | 433 434 | 436 | 437 | 439 | 440 | 442 | 444 | 445 | 447 | 448 | 450 | 451 452 | 454 | 455 | 457 | 459 | 460 | 462 | 463 | 465 | 466 | 468 | 470 471 | 472 | 474 | 475 | 477 | 478 | 480 | 481 | 483 | 485 | 486 | 488 489 | 490 | 492 | 493 | 495 | 497 | 498 | 500 | 501 | 503 | 504 | 506 507 | 509 | 510 | 512 | 513 | 515 | 516 | 518 | 519 | 521 | 523 | 524 525 | 527 | 528 | 530 | 531 | 533 | 535 | 536 | 538 | 539 | 541 | 542 543 | 545 | 546 | 548 | 550 | 551 | 553 | 554 | 556 | 557 | 559 | 561 562 | 563 | 565 | 566 | 568 | 569 | 571 | 572 | 574 | 576 | 577 | 579 580 | 581 | 583 | 584 | 586 | 588 | 589 | 591 | 592 | 594 | 595 | 597 598 | 600 | 601 | 603 | 604 | 606 | 607 | 609 | 610 | 612 | 614 | 615 616 | 618 | 619 | 621 | 622 | 624 | 626 | 627 | 629 | 630 | 632 | 633 634 | 636 | 637 | 639 | 641 | 642 | 644 645 | 647 | 648 | 650 | 651 | 653 | 654 | 656 | 657 | 659 | 661 | 662 663 | 665 | 666 | 668 | 669 | 671 | 673 | 674 | 676 | 677 | 679 | 680 681 | 683 | 685 | 686 | 688 | 689 | 691 | 692 | 694 | 695 | 697 | 699 700 | 701 | 703 | 704 | 706 | 707 | 709 | 711 | 712 | 714 | 715 | 717 718 | 719 | 721 | 722 | 724 | 726 | 727 | 729 | 730 | 732 | 733 | 735 736 | 738 | 739 | 741 | 742 | 744 | 745 | 747 | 748 | 750 | 752 | 753 754 | 756 | 757 | 759 | 760 | 762 | 764 | 765 | 767 | 768 | 770 | 771 772 | 774 | 776 | 777 | 779 | 780 | 782 | 783 | 785 | 786 | 788 | 790 791 | 792 | 794 | 795 | 797 | 798 | 800 | 802 | Suche der bake (mit rotate) 51 52 | 53 | 54 | 55 | 57 | 58 | 59 | 61 | 62 | 63 | 65 | 66 67 | 68 | 69 | 70 | 72 | 73 | 74 | 76 | 77 | 78 | 80 | 81 82 | 83 | 84 | 86 | 87 | 88 | 89 | 91 | 92 | 93 | 95 | 96 97 | 98 | 99 | 101 | 102 | 104 | 105 | 107 | 108 | 110 | 112 | 113 114 | 116 | 117 | 119 | 120 | 122 | 124 | 125 | 127 | 128 | 130 | 131 132 | 134 | 135 | 137 | 139 | 140 | 142 | 143 | 145 | 146 | 148 | 150 151 | 152 | 154 | 155 | 157 | 158 | 160 | 161 | 163 | 165 | 166 | 168 169 | 170 | 172 | 173 | 175 | 177 | 178 | 180 | 181 | 183 | 184 | 186 187 | 189 | 190 | 192 | 193 | 195 | 196 | 198 | 199 | 201 | 203 | 204 205 | 207 | 208 | 210 | 211 | 213 | 215 | 216 | 218 | 219 | 221 | 222 223 | 225 | 226 | 228 | 230 | 231 | 233 | 234 | 236 | 237 | 239 | 241 242 | 243 | 245 | 246 | 248 | 249 | 251 | 252 | 254 | 256 | 257 | 259 260 | 261 | 263 | 264 | 266 | 268 | 269 | 271 | 272 | 274 | 275 | 277 278 | 280 | 281 | 283 | 284 | 286 | 287 | 289 | 290 | 292 | 294 | 295 296 | 298 | 299 | 301 | 302 | 304 | 306 | 307 | 309 | 310 | 312 | 313 314 | 316 | 317 | 319 | 321 | 322 | 324 | 325 | 327 | 328 | 330 | 332 333 | 334 | 336 | 337 | 339 | 340 | 51 51 | 53 | 54 | 55 | 57 | 58 | 59 | 61 | 62 | 63 | 64 | 66 67 | 68 | 69 | 70 | 72 | 73 | 74 | 76 | 77 | 78 | 80 | 81 82 | 83 | 84 | 86 | 87 | 88 | 89 | 91 | 92 | 93 | 95 | 96 97 | 98 | 99 | 101 | 102 | 104 | 105 | 107 | 108 | 110 | 112 | 113 114 | 116 | 117 | 119 | 120 | 122 | 124 | 125 | 127 | 128 | 130 | 131 132 | 134 | 135 | 137 | 139 | 140 | 142 | 143 | 145 | 146 | 148 | 150 151 | 152 | 154 | 155 | 157 | 158 | 160 | 161 | 163 | 165 | 166 | 168 169 | 170 | 172 | 173 | 175 | 177 | 178 | 180 | 181 | 183 | 184 | 186 187 | 189 | 190 | 192 | 193 | 195 | 196 | 198 | 199 | 201 | 203 | 204 205 | 207 | 208 | 210 | 211 | 213 | 215 | 216 | 218 | 219 | 221 | 222 223 | 225 | 226 | 228 | 230 | 231 | 233 | 234 | 236 | 237 | 239 | 241 242 | 243 | 245 | 246 | 248 | 249 | 251 | 252 | 254 | 256 | 257 | 259 260 | 261 | 263 | 264 | 266 | 268 | 269 | 271 | 272 | 274 | 275 | 277 278 | 280 | 281 | 283 | 284 | 286 | 287 | 289 | 290 | 292 | 294 | 295 296 | 298 | 299 | 301 | 302 | 304 | 306 | 307 | 309 | 310 | 312 | 313 314 | 316 | 317 | 319 | 321 | 322 | 324 | 325 | 327 | 328 | 330 | 332 333 | 334 | 336 | 337 | 339 | 340 | 51 51 | 53 | 54 | 55 | 57 | 58 | 59 | 61 | 62 | 63 | 64 | 66 67 | 68 | 69 | 70 | 72 | 73 | 74 | 76 | 77 | 78 | 80 | 81 82 | 83 | 84 | 86 | 87 | 88 | 89 | 91 | 92 | 93 | 95 | 96 97 | 98 | 99 | 101 | 102 | 104 | 105 | 107 | 108 | 110 | 112 | 113 114 | 116 | 117 | 119 | 120 | 122 | 124 | 125 | 127 | 128 | 130 | 131 132 | 134 | 135 | 137 | 139 | 140 | 142 | 143 | 145 | 146 | 148 | 150 151 | 152 | 154 | 155 | 157 | 158 | 160 | 161 | 163 | 165 | 166 | 168 169 | 170 | 172 | 173 | 175 | 177 | 178 | 180 | 181 | 183 | 184 | 186 187 | 189 | 190 | 192 | 193 | 195 | 196 | 198 | 199 | 201 | 203 | 204 205 | 207 | 208 | 210 | 211 | 213 | 215 | 216 | 218 | 219 | 221 | 222 223 | 225 | 226 | 228 | 230 | 231 | 233 | 234 | 236 | 237 | 239 | 241 242 | 243 | 245 | 246 | 248 | 249 | 251 | 252 | 254 | 256 | 257 | 259 260 | 261 | 263 | 264 | 266 | 268 | 269 | 271 | 272 | 274 | 275 | 277 278 | 280 | 281 | 283 | 284 | 286 | 287 | 289 | 290 | 292 | 294 | 295 296 | 298 | 299 | 301 | 302 | 304 | 306 | 307 | 309 | 310 | 312 | 313 314 | 316 | 317 | 319 | 321 | 322 | 324 | 325 | 327 | 328 | 330 | 332 333 | 334 | 336 | 337 | 339 | 340 | 51
gruß inka
Hi inka,
Ich verstehe leider nicht so ganz, was du im Detail machen willst....könnte die abfrage so aussehen -- if ((t==10) && (tg<520)) --? Ich werde sicher auch noch die passenden stellen für das speichern (und rücksetzen) der zwei variablen t1 und t2 finden, bisher klappte das nicht so ganz
Ein Ablaufschema zum Finden der Bake könnte ja so aussehen:
1. Geht mein Akku zur Neige oder habe ich nichts mehr zu tun?
2. Nein: Meine Aufgabe erledigen oder herumstehen, weiter bei 1.
3. Ja: Zur Ladestation fahren:
4. Auf der Stelle so lange drehen, bis die Bake maximal zu empfangen ist.
5. Geradeaus fahren.
6. Bake erreicht?
7. Ja: Weiter bei 13.
8. Hindernis erkannt?
9. Ja: Ausweichen, dann weiter bei 4.
10. Signal weiter gut zu empfangen?
11. Ja: Weiter bei 5.
12. Nein: Weiter bei 4.
-------------------------------------------
13. Ladestation erreicht, Akku laden!
14. Akku voll geladen?
15. Ja: Losfahren und weiter bei 1.
16. Weiter bei 14.
-------------------------------------------
Mit weniger als das wird es nicht gehen...
In der Hauptschleife (Suchen der Ladestation) würde ich das machen:ich habe mir folgendes im terminal ausgeben lassen, werde daraus aber nicht schlau:
1. task_IR-Empfang -> Einlesen der IR-Empfängerwerte z.B. alle 50ms per Stopwatch. Die Task gibt in einer Variablen z.B. eine 1 aus, wenn die Bake (z.B. mehr als 3x hintereinander) empfangen wird und 0, wenn nicht. In dieser Task keine Ausgaben ans Terminal oder sonstwo, keine Pausen. Die Task ist z.B. eine eigene Funktion, die in der Hauptschleife aufgerufen wird.
2. task_FahreZurLadestation -> Sucht nach der IR-Quelle und steuert dahin. Braucht intern Regeln, die sich nach o.g. Schema richten, und natürlich die permanenten Infos: IR sichtbar oder nicht (aus der task_IR-Empfang), Hindernis erkannt (ACS o.ä.), Ladestation erreicht, Akkustand.
3. task_Ladung -> Akku wird geladen, Ende erkannt. Braucht permanente Info: Akkustand.
Alle Tasks arbeiten autonom (jede z.B. mit eigener/eigenen Stopwatch(es) und teils abhängig von Infos der anderen 2 Tasks:
- task_IR-Empfang läuft immer
- task_FahreZurLadestation läuft nur, wenn task_Ladung gerade nicht läuft und umgekehrt
- Weitere Tasks können gebraucht werden für das hier:
-- Anzeige von Daten (z.B. zum Debuggen). Immer auch mit Stopwatch (0,5 oder 1s, schneller kann man eh nicht lesen)
-- Eigentliche Aufgabe des autonomen Roboters (wenn er nicht gerade zur Ladung muss oder lädt)
-- ...
Gruß
Dirk
hi Dirk,
danke für Deine ausführliche antwort...
ich habe wahrscheinlich, nein, sogar ziemlich sicher eine andere herangehensweise an die aufgabe, die ich mir hier gestellt habe, als ein erfahrener programmierer oder elektroniker - beides bin ich auch nicht, auch wenn ich schon einiges gelernt habe... leider geht das viel zu langsam...
meine induktive ladestation besteht aus drei komplexen:
- ladestation - funktioniert soweit...
- ir-bake - an sich funktioniert sie auch...
- das zusammenspiel beim finden der ladestation mit hilfe des IR-empfängers am RP6 - fdunktioniert nicht...
ich kann jetzt einen ablaufplan erstellen wie Du es in Deinem post fantastisch gemacht hast - danke - so in groben zügen hatte ich es mir auch schon skizziert...
Nach Deiner erklärung weis ich (nein, ich ahne es nur) was ein Task ist - ich würde mich aber hier lächerlich machen, wenn ich ernsthaft über "Tasks" und ähnliches reden würde...
Es hilft mir nicht weiter mich mit dem großen plan (den ich ja im prinzip hab!) zu beschäftigen, wenn mir das handwerkszeug fehlt um eine funktionierende verschachtelte if-abfragen-schleife zu erstellen. Beispielsweise move- und rotate- funktion, in abhängigkeit von IR-empfang und abgelaufener zeit, ohne acs, accustand, hindernisse und ähnliches, in der skizzenhaft klar wird, ob meine ir-bake so bleiben kann, oder eben nicht. Zu diese erkenntnis muss ich ab zu mal auch ein paar sachen auf dem terminal ausgeben - das sind alles nur versuche die dinge "im kleinen" zu verstehen. Mit den worten eines feinwerktechnikers - ich kann kein flugzeug bauen, wenn ich von aerodynamik keine ahnung habe...
Und wenn ich ansatzweise weiss, dass die drei komponenten, die ich oben genannt habe auch funktionieren und zusammenspielen, können wir uns gerne über Tasks unterhalten![]()
gruß inka
Hi,
Ich denke, es geht vielleicht nicht nur ums Handwerk.Es hilft mir nicht weiter mich mit dem großen plan (den ich ja im prinzip hab!) zu beschäftigen, wenn mir das handwerkszeug fehlt um eine funktionierende verschachtelte if-abfragen-schleife zu erstellen. Beispielsweise move- und rotate- funktion, in abhängigkeit von IR-empfang und abgelaufener zeit,...
Erklär doch mal (als "Ablaufschema" oder Wenn-Dann-Abfolge), was du in der "verschachtelten if-abfragen-schleife" machen willst! Wenn (auch) ich die Logik verstehe, dann kommt die Umsetzung im 2. Schritt schon ...... irgendwie ...
... oder ...
Gruß
Dirk
hi Thorben,
ich bin da unsicher:
gerade an der stelle hatte ich glaube ich schon alle variationen getestet. Nur break, nur stop, break/stop, stop/break. Die variante break/stop schien mir noch die "erfolgreichste" zu sein - zumindest manchmal passierte beides - er veließ die schleife UND die motoren blieben stehen.
Ich glaube dass es etwas mit der dauer der betätigung der bumper zu tun hat, beim kurzen antippen dreht sich der RP6 anschließend im kreis, bei einer längeren betätigung bleibt er eher stehen...
- - - Aktualisiert - - -
ich hab jetzt die reihenfolge noch einmal geändert, zuerst stop(); und dann break;
so lange er nach rechts dreht, bleibt er beim betätigen des bumpers stehen
wenn er geradeaus fährt, fängt er nach der betätigung des bumpers sich nach rechts zu drehen, mal schneller, mal langsam, er misst nicht dabei, erst wenn ich den button3 betätige, also quasi den case3: noch einmal auslöse, fängt er auch an zu messen und fährt dann (nach empfang) geradeaus wieder richtung bake. Wo im code passiert das? verstehe ich nicht...
gruß inka
Könnte es sein das du in else Schleife Reinkommst da dort ja eine Rechtsbewegung ausgeführt wird?
War nur eine Idee da dort ja ein Befehl für rechts gegeben wird.Code:case 3:// ... if (temp == 0) { ... } else { setMultiIOLED1(1); setMultiIOLED1(0); rotate(80, RIGHT, 1, false); setStopwatch3(0); } ...
gruß Thorben
hi allerseits,
eigentlich wollte ich hier ein video reinstellen, dass alles klappt, klappt ja auch aber nur im prinzip. Der RP6 findet brav die bake, fährt hin, bleibt aber per abfrage der bumper nicht zuverlässig genung stehen. mal tut er das, dann wieder nicht, ich glaube, ich habe nun in dem code die möglichkeiten die bumperabfrage zu plazieren ziemlich ausgeschöpft...
bzw. am ende der do-while schleife:Code:task_checkINT0(); task_I2CTWI(); if(bumper_left && bumper_right) { break; stop(); }
evtl. liegt dort das problem, die abfrage der beiden task liegt innerhalb (am ende) der do-whileschleife? Könnte sich bitte jemand den code anschauen?Code:while(!bumper_left && !bumper_right); break; stop();
das wird oberhalb der hauptschleife aufgerufen:
Code:I2CTWI_initMaster(100); I2CTWI_setTransmissionErrorHandler(I2C_transmissionError); I2CTWI_setRequestedDataReadyHandler(I2C_requestedDataReady);
Code:case 3:// setLEDs(0b0100); writeString_P("suche der bake \n"); writeChar('\n'); initRP6Control(); initLCD(); startStopwatch3(); t=0; while(true) { do { if(getStopwatch3() > 50) { temp = read_IR_value(); if (temp == 0) { x = getStopwatch3(); setMultiIOLED3(1); setMultiIOLED3(0); if (t<10) { t++; if (t == 10) { y = getStopwatch3(); z = y-x; t=0; setStopwatch3(0); if (z< 600) { move(100, FWD, DIST_MM(100), false); setStopwatch3(0); t=0; mSleep(400); task_checkINT0(); task_I2CTWI(); if(bumper_left && bumper_right) { break; stop(); } } } } } else { setMultiIOLED1(1); setMultiIOLED1(0); rotate(80, RIGHT, 1, false); setStopwatch3(0); } task_checkINT0(); task_I2CTWI(); if(bumper_left && bumper_right) { break; stop(); } } task_checkINT0(); task_I2CTWI(); } while(!bumper_left && !bumper_right); break; stop(); /**************************/ uint8_t key_1; mSleep(100); key_1 = getMultiIOPressedButtonNumber(); if(key_1 != 0) break; stop(); /**************************/ } break;
Geändert von inka (03.02.2014 um 14:46 Uhr)
gruß inka
Lesezeichen