RainbowTeam / Mbed 2 deprecated ProjectTheseus

Dependencies:   mbed

Committer:
wengefa1
Date:
Fri May 18 11:36:48 2018 +0000
Revision:
12:811b1364679e
Parent:
11:68ee67d17320
new mapping

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Alexander_Zuest 0:4a0b987c5c94 1 #include "mbed.h"
Alexander_Zuest 0:4a0b987c5c94 2 #include "Controller.h"
Alexander_Zuest 0:4a0b987c5c94 3 #include "MotorDriver.h"
Alexander_Zuest 0:4a0b987c5c94 4 #include "ReadFinalLine.h"
Alexander_Zuest 0:4a0b987c5c94 5 #include "ReadSensor.h"
Alexander_Zuest 0:4a0b987c5c94 6 #include "Mapping.h"
Alexander_Zuest 6:a1fd0f1374e6 7 #include "SDFileSystem.h"
Alexander_Zuest 6:a1fd0f1374e6 8
wengefa1 9:5802ccfcc984 9 DigitalOut myled1(LED1);
Alexander_Zuest 0:4a0b987c5c94 10
Alexander_Zuest 0:4a0b987c5c94 11 //debug
Alexander_Zuest 0:4a0b987c5c94 12 //DigitalOut myled(LED2);
Alexander_Zuest 0:4a0b987c5c94 13
Alexander_Zuest 0:4a0b987c5c94 14 // Funktionsinitalisierungen
Alexander_Zuest 0:4a0b987c5c94 15 int readSensor(int SensorNummer);// Liesst Ultraschallsensoren 1-3 aus
Alexander_Zuest 0:4a0b987c5c94 16
Alexander_Zuest 0:4a0b987c5c94 17 // int diveOne(); Bewegt Farhzeug um ein Feld nach vorne
Alexander_Zuest 0:4a0b987c5c94 18
Alexander_Zuest 0:4a0b987c5c94 19 int turnRight(int currentDirection); // Biegt Farzeug nach rechts ab und gibt neue Momentanrichtung zurück
Alexander_Zuest 0:4a0b987c5c94 20
Alexander_Zuest 0:4a0b987c5c94 21 int turnLeft(int currentDirection); // Biegt Farzeug nach links ab und gibt neue Momentanrichtung zurück
Alexander_Zuest 0:4a0b987c5c94 22
Alexander_Zuest 0:4a0b987c5c94 23 // int wait(int time); Systemfunktion für Pausen
Alexander_Zuest 0:4a0b987c5c94 24
Alexander_Zuest 6:a1fd0f1374e6 25 SDFileSystem sd(PB_5, PB_4, PB_3, PB_10, "sd"); //mosi, miso, sclk, cs
wengefa1 8:73c8188916dc 26 InterruptIn LineSens1(PC_2);
wengefa1 8:73c8188916dc 27 InterruptIn LineSens2(PC_3);
Alexander_Zuest 0:4a0b987c5c94 28
wengefa1 12:811b1364679e 29 void mapping(void) //------------------------------------------------------------------------------------------------------ Mapping
wengefa1 12:811b1364679e 30 {
Alexander_Zuest 0:4a0b987c5c94 31
wengefa1 12:811b1364679e 32 int startPosX = 19; // Feld (10 / 5)
wengefa1 12:811b1364679e 33 int startPosY = 9;
Alexander_Zuest 0:4a0b987c5c94 34
Alexander_Zuest 0:4a0b987c5c94 35
wengefa1 12:811b1364679e 36 int map[20][10]; // 20 Zeilen, 10 Spalten, Karte gefüllt mit 3 für keine Daten
wengefa1 12:811b1364679e 37 int f,g;
wengefa1 12:811b1364679e 38 for (f = 0; f < 20; f++) {
wengefa1 12:811b1364679e 39 for (g = 0; g < 10; g++) {
wengefa1 12:811b1364679e 40 map[f][g] = 3;
wengefa1 12:811b1364679e 41 }
wengefa1 12:811b1364679e 42 }
Alexander_Zuest 0:4a0b987c5c94 43
wengefa1 12:811b1364679e 44 int speed = 3;
Alexander_Zuest 0:4a0b987c5c94 45
wengefa1 12:811b1364679e 46 int startrichtung = 4;
Alexander_Zuest 0:4a0b987c5c94 47
wengefa1 12:811b1364679e 48 int P_straight;
wengefa1 12:811b1364679e 49 int P_rightTurn;
wengefa1 12:811b1364679e 50 int P_leftTurn;
Alexander_Zuest 0:4a0b987c5c94 51
Alexander_Zuest 0:4a0b987c5c94 52 // Sensoren
wengefa1 12:811b1364679e 53 int right = 3;
wengefa1 12:811b1364679e 54 int left = 1;
wengefa1 12:811b1364679e 55 int front = 2;
Alexander_Zuest 0:4a0b987c5c94 56
Alexander_Zuest 0:4a0b987c5c94 57 // Aktuelle Position
wengefa1 12:811b1364679e 58 int X = startPosX; // Bei Bewegung: X-2 -> 1 nach oben, X+2 -> 1 nach unten
wengefa1 12:811b1364679e 59 int Y = startPosY; // Bei Bewegung: Y-2 -> 1 nach links, Y+2 -> 1 nach rechts
Alexander_Zuest 0:4a0b987c5c94 60
Alexander_Zuest 0:4a0b987c5c94 61 // Initalisieren der momentanen Richtung
wengefa1 12:811b1364679e 62 int currentDirection = startrichtung;
Alexander_Zuest 0:4a0b987c5c94 63
Alexander_Zuest 0:4a0b987c5c94 64 // Verzögerung zwischen Aktionen in ms
wengefa1 12:811b1364679e 65 int pause = 2;
Alexander_Zuest 0:4a0b987c5c94 66
Alexander_Zuest 0:4a0b987c5c94 67 // Zustandsvariabel während Fahrt = 1 bei Ziel =0
wengefa1 12:811b1364679e 68 int drive = 1;
Alexander_Zuest 0:4a0b987c5c94 69
Alexander_Zuest 0:4a0b987c5c94 70 // Startinitialisierung, Bestimmen der Abfahrtsrichtung aus dem ersten Feld
Alexander_Zuest 0:4a0b987c5c94 71
wengefa1 12:811b1364679e 72 if (readSensor(front) == false) { // Gegen vorne freie Fahrt (kein Hindernis -> 0)
wengefa1 12:811b1364679e 73 map[X-1][Y] = 0;
wengefa1 12:811b1364679e 74 } else {
Alexander_Zuest 0:4a0b987c5c94 75 map [X-1][Y] = 1;
wengefa1 12:811b1364679e 76 }
Alexander_Zuest 0:4a0b987c5c94 77
wengefa1 12:811b1364679e 78 if (readSensor(right) == false) { // Gegen rechts freie Fahrt (kein Hindernis -> 0)
wengefa1 12:811b1364679e 79 map[X-1][Y-1] = 0;
wengefa1 12:811b1364679e 80 } else {
Alexander_Zuest 0:4a0b987c5c94 81 map [X-1][Y-1] = 1;
wengefa1 12:811b1364679e 82 }
Alexander_Zuest 0:4a0b987c5c94 83
wengefa1 12:811b1364679e 84 map[X][ Y-1] = 1; // ergibt sich aus Feldaufbau und Startrichtung
wengefa1 12:811b1364679e 85 map[X ][ Y] = 1;
Alexander_Zuest 0:4a0b987c5c94 86
Alexander_Zuest 0:4a0b987c5c94 87
Alexander_Zuest 0:4a0b987c5c94 88 // Erster Schritt
Alexander_Zuest 0:4a0b987c5c94 89
wengefa1 12:811b1364679e 90 if(map[X-1][Y] == 0) {
wengefa1 12:811b1364679e 91 driveOne(1,speed);
wengefa1 12:811b1364679e 92 X = X-2;
Alexander_Zuest 0:4a0b987c5c94 93 // debug
wengefa1 12:811b1364679e 94 //printf("\nIf erster schritt\n");
wengefa1 12:811b1364679e 95 } else {
wengefa1 12:811b1364679e 96 currentDirection = turnRight(currentDirection);
wengefa1 12:811b1364679e 97 //wait(pause);
wengefa1 12:811b1364679e 98 driveOne(1,speed);
wengefa1 12:811b1364679e 99 Y = Y-2;
wengefa1 12:811b1364679e 100 //printf("\nElse erster schritt\n");
wengefa1 12:811b1364679e 101 }
wengefa1 8:73c8188916dc 102 //Interrupt für Ziellinie
wengefa1 12:811b1364679e 103 LineSens1.rise(&setLine1);
wengefa1 12:811b1364679e 104 LineSens2.rise(&setLine2);
wengefa1 12:811b1364679e 105
Alexander_Zuest 0:4a0b987c5c94 106
Alexander_Zuest 0:4a0b987c5c94 107 // Farhralgorithmus
Alexander_Zuest 0:4a0b987c5c94 108
wengefa1 12:811b1364679e 109 while (drive == 1) {
wengefa1 12:811b1364679e 110 //wait(pause);
wengefa1 8:73c8188916dc 111
wengefa1 12:811b1364679e 112 // Variabeln zurücksetzen
wengefa1 12:811b1364679e 113 P_straight = 1;
wengefa1 12:811b1364679e 114 P_rightTurn = 1;
wengefa1 12:811b1364679e 115 P_leftTurn = 1;
Alexander_Zuest 0:4a0b987c5c94 116
wengefa1 12:811b1364679e 117 int s = 12;
Alexander_Zuest 0:4a0b987c5c94 118
Alexander_Zuest 0:4a0b987c5c94 119 // Mapping während Fahrt
wengefa1 12:811b1364679e 120 switch (currentDirection) {
Alexander_Zuest 0:4a0b987c5c94 121 // --------------------------------------------------------------------------- 1 Ausrichtung oben
Alexander_Zuest 0:4a0b987c5c94 122
Alexander_Zuest 0:4a0b987c5c94 123
wengefa1 12:811b1364679e 124 case 1:
wengefa1 12:811b1364679e 125
wengefa1 12:811b1364679e 126 // Kartografierung Feld in Fahrtrichtung
wengefa1 12:811b1364679e 127 if (readSensor(front) == false) {
wengefa1 12:811b1364679e 128 map[X-1][Y-1] = 0;
wengefa1 12:811b1364679e 129 P_straight = 0;
wengefa1 12:811b1364679e 130 } else {
wengefa1 12:811b1364679e 131 map[X-1][Y-1] = 1;
wengefa1 12:811b1364679e 132 }
wengefa1 12:811b1364679e 133
wengefa1 12:811b1364679e 134 // Kartografierung Feld rechts
wengefa1 12:811b1364679e 135 if (readSensor(right) == false) {
wengefa1 12:811b1364679e 136 map[X][Y-1] = 0;
wengefa1 12:811b1364679e 137 P_rightTurn = 0;
wengefa1 12:811b1364679e 138 } else {
wengefa1 12:811b1364679e 139 map[X][Y-1] = 1;
wengefa1 12:811b1364679e 140 }
wengefa1 12:811b1364679e 141
wengefa1 12:811b1364679e 142 // Kartografierung Feld links
wengefa1 12:811b1364679e 143
wengefa1 12:811b1364679e 144 if (readSensor(left) == false) {
wengefa1 12:811b1364679e 145 map[X-1][Y] = 0;
wengefa1 12:811b1364679e 146 P_leftTurn = 0;
wengefa1 12:811b1364679e 147 } else {
wengefa1 12:811b1364679e 148 map[X-1][Y] = 1;
wengefa1 12:811b1364679e 149 }
wengefa1 12:811b1364679e 150
wengefa1 12:811b1364679e 151 // Kartografierung Feld nach hinten
wengefa1 12:811b1364679e 152 map[X][Y] = 1;
wengefa1 12:811b1364679e 153 // debug
wengefa1 12:811b1364679e 154 //printf("case 1 \n");
wengefa1 12:811b1364679e 155 break;
Alexander_Zuest 0:4a0b987c5c94 156
Alexander_Zuest 0:4a0b987c5c94 157 // --------------------------------------------------------------------------- 2 Ausrichtung Rechts
wengefa1 12:811b1364679e 158 case 2:
wengefa1 12:811b1364679e 159
wengefa1 12:811b1364679e 160 // Kartografierung Feld in Fahrtrichtung
wengefa1 12:811b1364679e 161 if (readSensor(front) == false) {
wengefa1 12:811b1364679e 162 map[X][Y-1] = 0;
wengefa1 12:811b1364679e 163 P_straight = 0;
wengefa1 12:811b1364679e 164 } else {
wengefa1 12:811b1364679e 165 map[X][Y-1] = 1;
wengefa1 12:811b1364679e 166 }
wengefa1 12:811b1364679e 167
wengefa1 12:811b1364679e 168 // Kartografierung Feld rechts
wengefa1 12:811b1364679e 169 if (readSensor(right) == false) {
wengefa1 12:811b1364679e 170 map[X][Y] = 0;
wengefa1 12:811b1364679e 171 P_rightTurn = 0;
wengefa1 12:811b1364679e 172 } else {
wengefa1 12:811b1364679e 173 map[X][Y] = 1;
wengefa1 12:811b1364679e 174 }
wengefa1 12:811b1364679e 175
wengefa1 12:811b1364679e 176 // Kartografierung Feld links
wengefa1 12:811b1364679e 177
wengefa1 12:811b1364679e 178 if (readSensor(left) == false) {
wengefa1 12:811b1364679e 179 map[X-1][Y-1] = 0;
wengefa1 12:811b1364679e 180 P_leftTurn = 0;
wengefa1 12:811b1364679e 181 } else {
wengefa1 12:811b1364679e 182 map[X-1][Y-1] = 1;
wengefa1 12:811b1364679e 183 }
wengefa1 12:811b1364679e 184
wengefa1 12:811b1364679e 185 // Kartografierung Feld nach hinten
wengefa1 12:811b1364679e 186 map[X-1][Y] = 1;
wengefa1 12:811b1364679e 187 // debug
wengefa1 12:811b1364679e 188 //printf("case 2 \n");
wengefa1 12:811b1364679e 189 break;
Alexander_Zuest 0:4a0b987c5c94 190 // --------------------------------------------------------------------------- 3 Ausrichtung Unten
wengefa1 12:811b1364679e 191 case 3:
wengefa1 12:811b1364679e 192
wengefa1 12:811b1364679e 193 // Kartografierung Feld in Fahrtrichtung
wengefa1 12:811b1364679e 194 if (readSensor(front) == false) {
wengefa1 12:811b1364679e 195 map[X][Y] = 0;
wengefa1 12:811b1364679e 196 P_straight = 0;
wengefa1 12:811b1364679e 197 } else {
wengefa1 12:811b1364679e 198 map[X][Y] = 1;
wengefa1 12:811b1364679e 199 }
wengefa1 12:811b1364679e 200
wengefa1 12:811b1364679e 201 // Kartografierung Feld rechts
wengefa1 12:811b1364679e 202 if (readSensor(right) == false) {
wengefa1 12:811b1364679e 203 map[X-1][Y] = 0;
wengefa1 12:811b1364679e 204 P_rightTurn = 0;
wengefa1 12:811b1364679e 205 } else {
wengefa1 12:811b1364679e 206 map[X-1][Y] = 1;
wengefa1 12:811b1364679e 207 }
wengefa1 12:811b1364679e 208
wengefa1 12:811b1364679e 209 // Kartografierung Feld links
wengefa1 12:811b1364679e 210
wengefa1 12:811b1364679e 211 if (readSensor(left) == false) {
wengefa1 12:811b1364679e 212 map[X][Y-1] = 0;
wengefa1 12:811b1364679e 213 P_leftTurn = 0;
wengefa1 12:811b1364679e 214 } else {
wengefa1 12:811b1364679e 215 map[X][Y-1] = 1;
wengefa1 12:811b1364679e 216 }
wengefa1 12:811b1364679e 217
wengefa1 12:811b1364679e 218 // Kartografierung Feld nach hinten
wengefa1 12:811b1364679e 219 map[X-1][Y-1] = 1;
wengefa1 12:811b1364679e 220 // debug
wengefa1 12:811b1364679e 221 //printf("case 3: S = %d\n",s);
wengefa1 12:811b1364679e 222 break;
wengefa1 12:811b1364679e 223 // --------------------------------------------------------------------------- 4 Ausrichtung Links
wengefa1 12:811b1364679e 224 case 4:
wengefa1 12:811b1364679e 225
wengefa1 12:811b1364679e 226 // Kartografierung Feld in Fahrtrichtung
wengefa1 12:811b1364679e 227 if (readSensor(front) == false) {
wengefa1 12:811b1364679e 228 map[X-1][Y] = 0;
wengefa1 12:811b1364679e 229 P_straight = 0;
wengefa1 12:811b1364679e 230 } else {
wengefa1 12:811b1364679e 231 map[X-1][Y] = 1;
wengefa1 12:811b1364679e 232 }
wengefa1 12:811b1364679e 233
wengefa1 12:811b1364679e 234 // Kartografierung Feld rechts
wengefa1 12:811b1364679e 235 if (readSensor(right) == false) {
wengefa1 12:811b1364679e 236 map[X-1][Y-1] = 0;
wengefa1 12:811b1364679e 237 P_rightTurn = 0;
wengefa1 12:811b1364679e 238 } else {
wengefa1 12:811b1364679e 239 map[X-1][Y-1] = 1;
wengefa1 12:811b1364679e 240 }
wengefa1 12:811b1364679e 241
wengefa1 12:811b1364679e 242 // Kartografierung Feld links
wengefa1 12:811b1364679e 243
wengefa1 12:811b1364679e 244 if (readSensor(left) == false) {
wengefa1 12:811b1364679e 245 map[X][Y] = 0;
wengefa1 12:811b1364679e 246 P_leftTurn = 0;
wengefa1 12:811b1364679e 247 } else {
wengefa1 12:811b1364679e 248 map[X][Y] = 1;
wengefa1 12:811b1364679e 249 }
wengefa1 12:811b1364679e 250
wengefa1 12:811b1364679e 251 // Kartografierung Feld nach hinten
wengefa1 12:811b1364679e 252 map[X-1][Y-1] = 1;
wengefa1 12:811b1364679e 253 // debug
wengefa1 12:811b1364679e 254 //printf("case 4\n");
wengefa1 12:811b1364679e 255
wengefa1 12:811b1364679e 256 break;
wengefa1 12:811b1364679e 257 default: //printf("Error: Direction out of definition\n");
Alexander_Zuest 0:4a0b987c5c94 258 }
wengefa1 12:811b1364679e 259 // debug
wengefa1 12:811b1364679e 260 if (P_straight == 0) {
wengefa1 12:811b1364679e 261 //printf("Geradeaus frei");
Alexander_Zuest 0:4a0b987c5c94 262 }
wengefa1 12:811b1364679e 263 if (P_rightTurn == 0) {
wengefa1 12:811b1364679e 264 //printf("Rechts frei");
Alexander_Zuest 0:4a0b987c5c94 265 }
wengefa1 12:811b1364679e 266 if (P_leftTurn == 0) {
wengefa1 12:811b1364679e 267 //printf("Links frei");
Alexander_Zuest 0:4a0b987c5c94 268 }
wengefa1 12:811b1364679e 269 //printf("Gerade %d\nRechts %d\nLinks %d\n", P_straight, P_rightTurn, P_leftTurn );
Alexander_Zuest 0:4a0b987c5c94 270
wengefa1 12:811b1364679e 271 //printf("Momentane Richtung = %d\n", currentDirection );
Alexander_Zuest 0:4a0b987c5c94 272
Alexander_Zuest 0:4a0b987c5c94 273
wengefa1 12:811b1364679e 274 // Fahren gem. Rechtsfahralgorithmus
wengefa1 12:811b1364679e 275 if (P_straight ==1) {
wengefa1 12:811b1364679e 276 driveOne(1,1);
wengefa1 8:73c8188916dc 277 }
Alexander_Zuest 0:4a0b987c5c94 278
wengefa1 12:811b1364679e 279 if (P_rightTurn == 0) {
wengefa1 12:811b1364679e 280 currentDirection = turnRight(currentDirection);
wengefa1 12:811b1364679e 281 //wait(pause);
wengefa1 12:811b1364679e 282 //printf("Ich biege rechts ab\n");
wengefa1 12:811b1364679e 283 driveOne(1,speed);
wengefa1 12:811b1364679e 284 //myled = 0;
wengefa1 12:811b1364679e 285 } else {
wengefa1 12:811b1364679e 286 if (P_straight == 0) {
wengefa1 12:811b1364679e 287 driveOne(1,speed);
wengefa1 12:811b1364679e 288 //printf("Ich fahre gerade aus\n");
Alexander_Zuest 0:4a0b987c5c94 289 //myled = 0;
wengefa1 12:811b1364679e 290 } else {
wengefa1 12:811b1364679e 291 if(P_leftTurn == 0) {
Alexander_Zuest 0:4a0b987c5c94 292 currentDirection = turnLeft(currentDirection);
Alexander_Zuest 0:4a0b987c5c94 293 //wait(pause);
wengefa1 12:811b1364679e 294 //printf("Ich biege links ab\n");
Alexander_Zuest 0:4a0b987c5c94 295 driveOne(1,speed);
Alexander_Zuest 0:4a0b987c5c94 296 //myled = 0;
wengefa1 12:811b1364679e 297 } else {
wengefa1 12:811b1364679e 298 //printf("Ich wende!!!\n");
wengefa1 12:811b1364679e 299 currentDirection = turnRight(currentDirection);
wengefa1 12:811b1364679e 300 //wait(pause);
wengefa1 12:811b1364679e 301 currentDirection = turnRight(currentDirection);
wengefa1 12:811b1364679e 302 //wait(pause);
wengefa1 12:811b1364679e 303 driveOne(1,speed);
wengefa1 12:811b1364679e 304 //myled = 1;
wengefa1 12:811b1364679e 305 }
Alexander_Zuest 0:4a0b987c5c94 306 }
Alexander_Zuest 0:4a0b987c5c94 307 }
wengefa1 12:811b1364679e 308
wengefa1 12:811b1364679e 309 //printf("Neue Richtung = %d\n", currentDirection );
wengefa1 12:811b1364679e 310 // Aktualisieren der Position:
wengefa1 12:811b1364679e 311
wengefa1 12:811b1364679e 312 switch (currentDirection) {
Alexander_Zuest 0:4a0b987c5c94 313 case 1:
wengefa1 12:811b1364679e 314 Y = Y-2;
wengefa1 12:811b1364679e 315 break;
wengefa1 12:811b1364679e 316 //----------
Alexander_Zuest 0:4a0b987c5c94 317 case 2:
wengefa1 12:811b1364679e 318 X = X+2;
wengefa1 12:811b1364679e 319 break;
wengefa1 12:811b1364679e 320 //----------
Alexander_Zuest 0:4a0b987c5c94 321 case 3:
wengefa1 12:811b1364679e 322 Y = Y+2;
wengefa1 12:811b1364679e 323 break;
wengefa1 12:811b1364679e 324 //----------
Alexander_Zuest 0:4a0b987c5c94 325 case 4:
wengefa1 12:811b1364679e 326 X = X-2;
wengefa1 12:811b1364679e 327 break;
wengefa1 12:811b1364679e 328 }
wengefa1 12:811b1364679e 329
wengefa1 12:811b1364679e 330 // Bei Ueberfahren der Ziellinie
wengefa1 12:811b1364679e 331 if(readFinalLine() == true) { // Prüft Linienüberfahrt
wengefa1 12:811b1364679e 332 drive = 0; // Beendet Schlafendurchlauf
Alexander_Zuest 0:4a0b987c5c94 333 }
wengefa1 12:811b1364679e 334
wengefa1 12:811b1364679e 335 // Verhalten bei Schlaufenfahren = Bereits befahrenen Feldern
wengefa1 12:811b1364679e 336
wengefa1 12:811b1364679e 337 // Setzt in Richtung des letzten Feldes eine Wand
wengefa1 12:811b1364679e 338 if (map[X][Y] != 3) {
wengefa1 12:811b1364679e 339 switch (currentDirection) {
wengefa1 12:811b1364679e 340 case 1:
wengefa1 12:811b1364679e 341 map[X][Y] = 1;
wengefa1 12:811b1364679e 342 break;
wengefa1 12:811b1364679e 343
wengefa1 12:811b1364679e 344 case 2:
wengefa1 12:811b1364679e 345 map[X-1][Y] = 1;
wengefa1 12:811b1364679e 346 break;
wengefa1 12:811b1364679e 347
wengefa1 12:811b1364679e 348 case 3:
wengefa1 12:811b1364679e 349 map[X-1][Y-1] = 1;
wengefa1 12:811b1364679e 350 break;
wengefa1 12:811b1364679e 351
wengefa1 12:811b1364679e 352 case 4:
wengefa1 12:811b1364679e 353 map[X][Y-1] = 1;
wengefa1 12:811b1364679e 354 break;
wengefa1 12:811b1364679e 355 }
wengefa1 12:811b1364679e 356
wengefa1 12:811b1364679e 357 }
wengefa1 12:811b1364679e 358
Alexander_Zuest 0:4a0b987c5c94 359 } // Ende Fahrschlaufe
Alexander_Zuest 0:4a0b987c5c94 360
Alexander_Zuest 0:4a0b987c5c94 361 // Zielmanoever ausführen-------------------------------------------------------------------------------------
Alexander_Zuest 0:4a0b987c5c94 362
wengefa1 12:811b1364679e 363 map[X][Y] = 2;
wengefa1 12:811b1364679e 364 map[X-1][Y] = 2;
wengefa1 12:811b1364679e 365 map[X][Y-1] = 2;
wengefa1 12:811b1364679e 366 map[X-1][Y-1] = 2;
Alexander_Zuest 0:4a0b987c5c94 367
Alexander_Zuest 0:4a0b987c5c94 368 // Karte auf SD speichern-------------------------------------------------------------------------------------
Alexander_Zuest 0:4a0b987c5c94 369
Alexander_Zuest 0:4a0b987c5c94 370 FILE *fp = fopen("/sd/map.csv", "w");
Alexander_Zuest 0:4a0b987c5c94 371 if (fp != NULL) {
wengefa1 12:811b1364679e 372 for (int i = 0; i <= 9; i++) {
wengefa1 12:811b1364679e 373 for (int k = 0; k <= 19; g++) {
wengefa1 12:811b1364679e 374 fprintf(fp, "%d",map[k,i]); //fprintf(fp, "Hello fun SD Card World!");
Alexander_Zuest 0:4a0b987c5c94 375 }
wengefa1 12:811b1364679e 376 fprintf(fp,"\n");
Alexander_Zuest 0:4a0b987c5c94 377 }
Alexander_Zuest 0:4a0b987c5c94 378 } else {
wengefa1 12:811b1364679e 379 printf("Zugriff auf Karte verweigert");
Alexander_Zuest 0:4a0b987c5c94 380 }
wengefa1 12:811b1364679e 381 fclose(fp);
Alexander_Zuest 0:4a0b987c5c94 382
wengefa1 9:5802ccfcc984 383 while(1) {
wengefa1 9:5802ccfcc984 384 myled1 = 1;
wengefa1 9:5802ccfcc984 385 wait(0.2);
wengefa1 9:5802ccfcc984 386 myled1 = 0;
wengefa1 9:5802ccfcc984 387 wait(0.2);
wengefa1 9:5802ccfcc984 388 }
Alexander_Zuest 0:4a0b987c5c94 389 }
Alexander_Zuest 0:4a0b987c5c94 390
Alexander_Zuest 0:4a0b987c5c94 391
Alexander_Zuest 0:4a0b987c5c94 392
Alexander_Zuest 0:4a0b987c5c94 393
Alexander_Zuest 0:4a0b987c5c94 394
Alexander_Zuest 0:4a0b987c5c94 395
Alexander_Zuest 0:4a0b987c5c94 396
Alexander_Zuest 0:4a0b987c5c94 397
Alexander_Zuest 0:4a0b987c5c94 398
Alexander_Zuest 0:4a0b987c5c94 399
Alexander_Zuest 0:4a0b987c5c94 400
Alexander_Zuest 0:4a0b987c5c94 401