Whack a Mole game! Features: - LCD graphics display - Touch pad input - Speaker effects through a class D audio amplifier\ - A high score page maintained by the SD card file system - Analog noise used to seed random numbers

Dependencies:   4DGL-uLCD-SE SDFileSystem mbed

Fork of MPR121_Demo by jim hamblen

Revision:
9:867dde4be88a
Parent:
8:e6e1e5b3f2a9
Child:
10:a31802412ab6
--- a/main.cpp	Mon Mar 14 16:23:47 2016 +0000
+++ b/main.cpp	Mon Mar 14 18:50:39 2016 +0000
@@ -27,18 +27,22 @@
 #include <mpr121.h>
 #include "SDFileSystem.h"
 #include "SongPlayer.h"
+
+//initialize lcd
 uLCD_4DGL lcd(p9, p10, p30); // tx, rx, reset
 
 DigitalOut led1(LED1);
 DigitalOut led2(LED2);
 DigitalOut led3(LED3);
 DigitalOut led4(LED4);
+
+//setup analog in pin to read noise for random number generation
 AnalogIn   Ain(p15);
 
 //Setup class D audio output on pwm out pin
 SongPlayer mySpeaker(p21);
 
-// Create the interrupt receiver object on pin 26
+//Create the interrupt receiver object on pin 26
 InterruptIn interrupt(p26);
 
 //Setup the Serial to the PC for debugging
@@ -90,8 +94,8 @@
     //Check to see if the a mole is hit after an interupt
     if (value==256&&pos1==1)
     {
-        mySpeaker.PlaySong(note,duration);
-        score++;
+        mySpeaker.PlaySong(note,duration);//play note to indicate successful hit
+        score++;//increment score by one
         pos1 = 0;//set the position to 0 after succesful hit to prevent multiple hits
     }
         if (value==16&&pos2==1)
@@ -124,22 +128,12 @@
         score++;
         pos6 = 0;
     }
-    //pc.printf("MPR value: %x \r\n", value); //debug code to the COM port that prints MPR value
-    //i=0;
-    // puts key number out to LEDs for demo
-   /* for (i=0; i<12; i++) {
-        if (((value>>i)&0x01)==1) key_code=i+1;
-        }
-    led4=key_code & 0x01;
-    led3=(key_code>>1) & 0x01;
-    led2=(key_code>>2) & 0x01;
-    led1=(key_code>>3) & 0x01;*/
 }
-float arand;
-unsigned int state;
+float arand;// variable to store analog noise
+unsigned int state; // global state variable
 
 int main() {
-lcd.baudrate(300000);
+lcd.baudrate(300000);// set lcd baudrate
     
 int out = 0xFF0000;// outline color
 int fill = 0x0000;// fill color. aka no mole
@@ -153,21 +147,22 @@
 int rmole=18;//radius mole
 int mole= 0xD3D3D3;//mole color like gray
 
-lcd.circle(col1, row1 , r, out);// all empty
+lcd.circle(col1, row1 , r, out);// draws 6 circles to the lcd screen to show where the moles will appear
 lcd.circle(col1, row2 , r, out);
 lcd.circle(col2, row1 , r, out);
 lcd.circle(col2, row2 , r, out);
 lcd.circle(col3, row1 , r, out);
 lcd.circle(col3, row2 , r, out);
 
-    pc.printf("\nHello from the mbed & mpr121\n\r");
+// Begin test code for mpr121
+pc.printf("\nHello from the mbed & mpr121\n\r");
 
-    unsigned char dataArray[2];
-    int key;
-    int count = 0;
+unsigned char dataArray[2];
+int key;
+int count = 0;
 
-    pc.printf("Test 1: read a value: \r\n");
-    dataArray[0] = mpr121.read(AFE_CFG);
+pc.printf("Test 1: read a value: \r\n");
+dataArray[0] = mpr121.read(AFE_CFG);
     pc.printf("Read value=%x\r\n\n",dataArray[0]);
 
     pc.printf("Test 2: read a value: \r\n");
@@ -208,20 +203,31 @@
     // mpr121.setProximityMode(true);
 
     pc.printf("ELE_CFG=%x", mpr121.read(ELE_CFG));
+// end test code of mpr121
 
-    interrupt.fall(&fallInterrupt);
+
+    interrupt.fall(&fallInterrupt);//set up the interrupt mode
     interrupt.mode(PullUp);
-    int counter = 0;
-    srand(state);
+    
+    int counter = 0;// initialize the variable to count the number of transitions per game
+    
+    //read in a psuedo random noise reading and multiply so that it can later be cast to int by truncation
+    arand = Ain.read()*1000000;
+    
+    //seed rand with noise reading
+    srand(arand);
+    
+    //game runs for transitions
     while (counter < 30) {
-        arand = Ain.read()*1000000;
-        state = arand;
 
+        //determine state using rand()
         state = rand()%15;
-        pc.printf("%i\n\r",state);
+
+        //switch the value of state to determine the output to the lcd
         switch(state)
         {
             case 0:
+            //mutex functionality can be incorperated my uncommenting //POS_MUTEX.un/lock()
             //POS_MUTEX.lock();
             pos1=1;
             pos2=0;
@@ -231,13 +237,13 @@
             pos6=0;
             //POS_MUTEX.unlock();
             pc.printf("%i should be 0 \n\r",state);
-lcd.filled_circle(col1, row1 , rmole, fill);// 1
-lcd.filled_circle(col1, row2 , rmole, fill);
-lcd.filled_circle(col2, row1 , rmole, fill);
-lcd.filled_circle(col2, row2 , rmole, fill);
-lcd.filled_circle(col3, row1 , rmole, fill);
-lcd.filled_circle(col3, row2 , rmole, fill);
-lcd.filled_circle(col1, row1 , rmole, mole);
+            lcd.filled_circle(col1, row1 , rmole, fill);// 1
+            lcd.filled_circle(col1, row2 , rmole, fill);
+            lcd.filled_circle(col2, row1 , rmole, fill);
+            lcd.filled_circle(col2, row2 , rmole, fill);
+            lcd.filled_circle(col3, row1 , rmole, fill);
+            lcd.filled_circle(col3, row2 , rmole, fill);
+            lcd.filled_circle(col1, row1 , rmole, mole);
             break;
             case 1:
             //POS_MUTEX.lock();
@@ -249,13 +255,13 @@
             pos6=0;
             //POS_MUTEX.unlock();
             pc.printf("%i should be 1 \n\r",state);
-lcd.filled_circle(col1, row1 , rmole, fill);// 2
-lcd.filled_circle(col1, row2 , rmole, fill);
-lcd.filled_circle(col2, row1 , rmole, fill);
-lcd.filled_circle(col2, row2 , rmole, fill);
-lcd.filled_circle(col3, row1 , rmole, fill);
-lcd.filled_circle(col3, row2 , rmole, fill);
-lcd.filled_circle(col2, row1 , rmole, mole);
+            lcd.filled_circle(col1, row1 , rmole, fill);// 2
+            lcd.filled_circle(col1, row2 , rmole, fill);
+            lcd.filled_circle(col2, row1 , rmole, fill);
+            lcd.filled_circle(col2, row2 , rmole, fill);
+            lcd.filled_circle(col3, row1 , rmole, fill);
+            lcd.filled_circle(col3, row2 , rmole, fill);
+            lcd.filled_circle(col2, row1 , rmole, mole);
             break;
             case 2:
             //POS_MUTEX.lock();
@@ -268,12 +274,12 @@
             //POS_MUTEX.unlock();
             pc.printf("%i should be 2 \n\r",state);
             lcd.filled_circle(col1, row1 , rmole, fill);// 3
-lcd.filled_circle(col1, row2 , rmole, fill);
-lcd.filled_circle(col2, row1 , rmole, fill);
-lcd.filled_circle(col2, row2 , rmole, fill);
-lcd.filled_circle(col3, row1 , rmole, fill);
-lcd.filled_circle(col3, row2 , rmole, fill);
-lcd.filled_circle(col3, row1 , rmole, mole);
+            lcd.filled_circle(col1, row2 , rmole, fill);
+            lcd.filled_circle(col2, row1 , rmole, fill);
+            lcd.filled_circle(col2, row2 , rmole, fill);
+            lcd.filled_circle(col3, row1 , rmole, fill);
+            lcd.filled_circle(col3, row2 , rmole, fill);
+            lcd.filled_circle(col3, row1 , rmole, mole);
             break;
             case 3:
             //POS_MUTEX.lock();
@@ -286,12 +292,12 @@
             //POS_MUTEX.unlock();
             pc.printf("%i should be 3 \n\r",state);
             lcd.filled_circle(col1, row1 , rmole, fill);// 4
-lcd.filled_circle(col1, row2 , rmole, fill);
-lcd.filled_circle(col2, row1 , rmole, fill);
-lcd.filled_circle(col2, row2 , rmole, fill);
-lcd.filled_circle(col3, row1 , rmole, fill);
-lcd.filled_circle(col3, row2 , rmole, fill);
-lcd.filled_circle(col1, row2 , rmole, mole);
+            lcd.filled_circle(col1, row2 , rmole, fill);
+            lcd.filled_circle(col2, row1 , rmole, fill);
+            lcd.filled_circle(col2, row2 , rmole, fill);
+            lcd.filled_circle(col3, row1 , rmole, fill);
+            lcd.filled_circle(col3, row2 , rmole, fill);
+            lcd.filled_circle(col1, row2 , rmole, mole);
             break;
             case 4:
             //POS_MUTEX.lock();
@@ -304,12 +310,12 @@
             //POS_MUTEX.unlock();
             pc.printf("%i should be 4 \n\r",state);
             lcd.filled_circle(col1, row1 , rmole, fill);// 5
-lcd.filled_circle(col1, row2 , rmole, fill);
-lcd.filled_circle(col2, row1 , rmole, fill);
-lcd.filled_circle(col2, row2 , rmole, fill);
-lcd.filled_circle(col3, row1 , rmole, fill);
-lcd.filled_circle(col3, row2 , rmole, fill);
-lcd.filled_circle(col2, row2 , rmole, mole);
+            lcd.filled_circle(col1, row2 , rmole, fill);
+            lcd.filled_circle(col2, row1 , rmole, fill);
+            lcd.filled_circle(col2, row2 , rmole, fill);
+            lcd.filled_circle(col3, row1 , rmole, fill);
+            lcd.filled_circle(col3, row2 , rmole, fill);
+            lcd.filled_circle(col2, row2 , rmole, mole);
             break;
             case 5:
             //POS_MUTEX.lock();
@@ -322,13 +328,13 @@
             //POS_MUTEX.unlock();
             pc.printf("%i should be 5 \n\r",state);
             
-lcd.filled_circle(col1, row1 , rmole, fill);// 6
-lcd.filled_circle(col1, row2 , rmole, fill);
-lcd.filled_circle(col2, row1 , rmole, fill);
-lcd.filled_circle(col2, row2 , rmole, fill);
-lcd.filled_circle(col3, row1 , rmole, fill);
-lcd.filled_circle(col3, row2 , rmole, fill);
-lcd.filled_circle(col2, row2 , rmole, mole);
+            lcd.filled_circle(col1, row1 , rmole, fill);// 6
+            lcd.filled_circle(col1, row2 , rmole, fill);
+            lcd.filled_circle(col2, row1 , rmole, fill);
+            lcd.filled_circle(col2, row2 , rmole, fill);
+            lcd.filled_circle(col3, row1 , rmole, fill);
+            lcd.filled_circle(col3, row2 , rmole, fill);
+            lcd.filled_circle(col2, row2 , rmole, mole);
             break;
             case 6:
             //POS_MUTEX.lock();
@@ -341,13 +347,13 @@
             //POS_MUTEX.unlock();
             pc.printf("%i should be 6 \n\r",state);
             lcd.filled_circle(col1, row1 , rmole, fill);// 2,6
-lcd.filled_circle(col1, row2 , rmole, fill);
-lcd.filled_circle(col2, row1 , rmole, fill);
-lcd.filled_circle(col2, row2 , rmole, fill);
-lcd.filled_circle(col3, row1 , rmole, fill);
-lcd.filled_circle(col3, row2 , rmole, fill);
-lcd.filled_circle(col2, row1 , rmole, mole);
-lcd.filled_circle(col3, row2 , rmole, mole);
+            lcd.filled_circle(col1, row2 , rmole, fill);
+            lcd.filled_circle(col2, row1 , rmole, fill);
+            lcd.filled_circle(col2, row2 , rmole, fill);
+            lcd.filled_circle(col3, row1 , rmole, fill);
+            lcd.filled_circle(col3, row2 , rmole, fill);
+            lcd.filled_circle(col2, row1 , rmole, mole);
+            lcd.filled_circle(col3, row2 , rmole, mole);
             break;
             case 7:
             //POS_MUTEX.lock();
@@ -360,13 +366,13 @@
             //POS_MUTEX.unlock();
             pc.printf("%i should be 7 \n\r",state);
             lcd.filled_circle(col1, row1 , rmole, fill);// 1,3
-lcd.filled_circle(col1, row2 , rmole, fill);
-lcd.filled_circle(col2, row1 , rmole, fill);
-lcd.filled_circle(col2, row2 , rmole, fill);
-lcd.filled_circle(col3, row1 , rmole, fill);
-lcd.filled_circle(col3, row2 , rmole, fill);
-lcd.filled_circle(col1, row1 , rmole, mole);
-lcd.filled_circle(col3, row1 , rmole, mole);
+            lcd.filled_circle(col1, row2 , rmole, fill);
+            lcd.filled_circle(col2, row1 , rmole, fill);
+            lcd.filled_circle(col2, row2 , rmole, fill);
+            lcd.filled_circle(col3, row1 , rmole, fill);
+            lcd.filled_circle(col3, row2 , rmole, fill);
+            lcd.filled_circle(col1, row1 , rmole, mole);
+            lcd.filled_circle(col3, row1 , rmole, mole);
             break;
             case 8:
             //POS_MUTEX.lock();
@@ -379,15 +385,15 @@
             //POS_MUTEX.unlock();
             pc.printf("%i should be 8 \n\r",state);
             
-lcd.filled_circle(col1, row1 , rmole, fill);// 2,4,6
-lcd.filled_circle(col1, row2 , rmole, fill);
-lcd.filled_circle(col2, row1 , rmole, fill);
-lcd.filled_circle(col2, row2 , rmole, fill);
-lcd.filled_circle(col3, row1 , rmole, fill);
-lcd.filled_circle(col3, row2 , rmole, fill);
-lcd.filled_circle(col2, row1 , rmole, mole);
-lcd.filled_circle(col2, row2 , rmole, mole);
-lcd.filled_circle(col3, row2 , rmole, mole);
+            lcd.filled_circle(col1, row1 , rmole, fill);// 2,4,6
+            lcd.filled_circle(col1, row2 , rmole, fill);
+            lcd.filled_circle(col2, row1 , rmole, fill);
+            lcd.filled_circle(col2, row2 , rmole, fill);
+            lcd.filled_circle(col3, row1 , rmole, fill);
+            lcd.filled_circle(col3, row2 , rmole, fill);
+            lcd.filled_circle(col2, row1 , rmole, mole);
+            lcd.filled_circle(col1, row2 , rmole, mole);
+            lcd.filled_circle(col3, row2 , rmole, mole);
             break;
             case 9:
             //POS_MUTEX.lock();
@@ -400,14 +406,14 @@
             //POS_MUTEX.unlock();
             pc.printf("%i should be 9 \n\r",state);
             lcd.filled_circle(col1, row1 , rmole, fill);// 3,4,6
-lcd.filled_circle(col1, row2 , rmole, fill);
-lcd.filled_circle(col2, row1 , rmole, fill);
-lcd.filled_circle(col2, row2 , rmole, fill);
-lcd.filled_circle(col3, row1 , rmole, fill);
-lcd.filled_circle(col3, row2 , rmole, fill);
-lcd.filled_circle(col3, row1 , rmole, mole);
-lcd.filled_circle(col1, row2 , rmole, mole);
-lcd.filled_circle(col3, row2 , rmole, mole);
+            lcd.filled_circle(col1, row2 , rmole, fill);
+            lcd.filled_circle(col2, row1 , rmole, fill);
+            lcd.filled_circle(col2, row2 , rmole, fill);
+            lcd.filled_circle(col3, row1 , rmole, fill);
+            lcd.filled_circle(col3, row2 , rmole, fill);
+            lcd.filled_circle(col3, row1 , rmole, mole);
+            lcd.filled_circle(col1, row2 , rmole, mole);
+            lcd.filled_circle(col3, row2 , rmole, mole);
             break;
             case 10:
             //POS_MUTEX.lock();
@@ -420,13 +426,13 @@
             //POS_MUTEX.unlock();
             pc.printf("%i should be 10 \n\r",state);
             lcd.filled_circle(col1, row1 , rmole, fill);// 1,6
-lcd.filled_circle(col1, row2 , rmole, fill);
-lcd.filled_circle(col2, row1 , rmole, fill);
-lcd.filled_circle(col2, row2 , rmole, fill);
-lcd.filled_circle(col3, row1 , rmole, fill);
-lcd.filled_circle(col3, row2 , rmole, fill);
-lcd.filled_circle(col1, row1 , rmole, mole);
-lcd.filled_circle(col3, row2 , rmole, mole);
+            lcd.filled_circle(col1, row2 , rmole, fill);
+            lcd.filled_circle(col2, row1 , rmole, fill);
+            lcd.filled_circle(col2, row2 , rmole, fill);
+            lcd.filled_circle(col3, row1 , rmole, fill);
+            lcd.filled_circle(col3, row2 , rmole, fill);
+            lcd.filled_circle(col1, row1 , rmole, mole);
+            lcd.filled_circle(col3, row2 , rmole, mole);
             break;
             case 11:
             //POS_MUTEX.lock();
@@ -439,15 +445,15 @@
             //POS_MUTEX.unlock();
             pc.printf("%i should be 11 \n\r",state);
             lcd.filled_circle(col1, row1 , rmole, fill);// 2,3,5,6
-lcd.filled_circle(col1, row2 , rmole, fill);
-lcd.filled_circle(col2, row1 , rmole, fill);
-lcd.filled_circle(col2, row2 , rmole, fill);
-lcd.filled_circle(col3, row1 , rmole, fill);
-lcd.filled_circle(col3, row2 , rmole, fill);
-lcd.filled_circle(col2, row1 , rmole, mole);
-lcd.filled_circle(col3, row1 , rmole, mole);
-lcd.filled_circle(col2, row2 , rmole, mole);
-lcd.filled_circle(col3, row2 , rmole, mole);
+            lcd.filled_circle(col1, row2 , rmole, fill);
+            lcd.filled_circle(col2, row1 , rmole, fill);
+            lcd.filled_circle(col2, row2 , rmole, fill);
+            lcd.filled_circle(col3, row1 , rmole, fill);
+            lcd.filled_circle(col3, row2 , rmole, fill);
+            lcd.filled_circle(col2, row1 , rmole, mole);
+            lcd.filled_circle(col3, row1 , rmole, mole);
+            lcd.filled_circle(col2, row2 , rmole, mole);
+            lcd.filled_circle(col3, row2 , rmole, mole);
             break;
             case 12:
             //POS_MUTEX.lock();
@@ -460,13 +466,13 @@
             //POS_MUTEX.unlock();
             pc.printf("%i should be 12 \n\r",state);
             lcd.filled_circle(col1, row1 , rmole, fill);// 3,5
-lcd.filled_circle(col1, row2 , rmole, fill);
-lcd.filled_circle(col2, row1 , rmole, fill);
-lcd.filled_circle(col2, row2 , rmole, fill);
-lcd.filled_circle(col3, row1 , rmole, fill);
-lcd.filled_circle(col3, row2 , rmole, fill);
-lcd.filled_circle(col3, row1 , rmole, mole);
-lcd.filled_circle(col2, row2 , rmole, mole);
+            lcd.filled_circle(col1, row2 , rmole, fill);
+            lcd.filled_circle(col2, row1 , rmole, fill);
+            lcd.filled_circle(col2, row2 , rmole, fill);
+            lcd.filled_circle(col3, row1 , rmole, fill);
+            lcd.filled_circle(col3, row2 , rmole, fill);
+            lcd.filled_circle(col3, row1 , rmole, mole);
+            lcd.filled_circle(col2, row2 , rmole, mole);
             break;
             case 13:
             //POS_MUTEX.lock();
@@ -479,14 +485,14 @@
             //POS_MUTEX.unlock();
             pc.printf("%i should be 13 \n\r",state);
             lcd.filled_circle(col1, row1 , rmole, fill);// 1,4,5
-lcd.filled_circle(col1, row2 , rmole, fill);
-lcd.filled_circle(col2, row1 , rmole, fill);
-lcd.filled_circle(col2, row2 , rmole, fill);
-lcd.filled_circle(col3, row1 , rmole, fill);
-lcd.filled_circle(col3, row2 , rmole, fill);
-lcd.filled_circle(col1, row1 , rmole, mole);
-lcd.filled_circle(col1, row2 , rmole, mole);
-lcd.filled_circle(col2, row2 , rmole, mole);
+            lcd.filled_circle(col1, row2 , rmole, fill);
+            lcd.filled_circle(col2, row1 , rmole, fill);
+            lcd.filled_circle(col2, row2 , rmole, fill);
+            lcd.filled_circle(col3, row1 , rmole, fill);
+            lcd.filled_circle(col3, row2 , rmole, fill);
+            lcd.filled_circle(col1, row1 , rmole, mole);
+            lcd.filled_circle(col1, row2 , rmole, mole);
+            lcd.filled_circle(col2, row2 , rmole, mole);
             break;
             case 14:
             //POS_MUTEX.lock();
@@ -499,55 +505,24 @@
             //POS_MUTEX.unlock();
             pc.printf("%i should be 14 \n\r",state);
             
-lcd.filled_circle(col1, row1 , rmole, fill);// 2,5
-lcd.filled_circle(col1, row2 , rmole, fill);
-lcd.filled_circle(col2, row1 , rmole, fill);
-lcd.filled_circle(col2, row2 , rmole, fill);
-lcd.filled_circle(col3, row1 , rmole, fill);
-lcd.filled_circle(col3, row2 , rmole, fill);
-lcd.filled_circle(col2, row1 , rmole, mole);
-lcd.filled_circle(col2, row2 , rmole, mole);
+            lcd.filled_circle(col1, row1 , rmole, fill);// 2,5
+            lcd.filled_circle(col1, row2 , rmole, fill);
+            lcd.filled_circle(col2, row1 , rmole, fill);
+            lcd.filled_circle(col2, row2 , rmole, fill);
+            lcd.filled_circle(col3, row1 , rmole, fill);
+            lcd.filled_circle(col3, row2 , rmole, fill);
+            lcd.filled_circle(col2, row1 , rmole, mole);
+            lcd.filled_circle(col2, row2 , rmole, mole);
             break;
             }
         wait(0.5);
-        counter++;
-        }
-        lcd.cls();
-        wait(3);
-        lcd.cls();
-       /* mkdir("/sd/mydir", 0777);
-        FILE *fp = fopen("/sd/mydir/highscore.txt", "w");
-        pc.printf("Could not open file for write\n");
-        
-        fprintf(fp,"titties");
-        fclose(fp);
-        
-        lcd.printf("The high schore is %s,
-        lcd.printf("you scored %D",score);
-        FILE *fp = fopen("/sd/mydir/sdtest.txt", "w");
-        if(fp == NULL) {
-        pc.printf("Could not open file for write\n");
+        counter++; // increment counter and run the "state machine again"
         }
-        fprintf(fp, "Hello fun SD Card World!");
-        fclose(fp);*//*
-    char str [80];
-    mkdir("/sd/mydir", 0777);
-    FILE *fp = fopen("/sd/mydir/sdtest.txt", "w");
-    if(fp == NULL) {
-        pc.printf("Could not open file for write\n");
-    }
-    fprintf(fp, "%d is the high score score);
-    fclose(fp); FILE *fp1 = fopen("/sd/mydir/sdtest.txt", "r"); 
-    if(fp1 == NULL) 
-    { 
-    pc.printf("Could not open file for read\n"); 
-    }
-    pc.printf("Opened file for read\n\r");
-    fscanf (fp1, "%s", str);
-    pc.printf ("I have read:   %s \n",str);
-    fclose(fp1);
- 
-    pc.printf("Goodbye World!\n");*/
+    // clear the lcd screen
+    lcd.cls();
+    wait(0.5);
+    lcd.cls();
+    // int variable to read current high score
     int please;
     mkdir("/sd/mydir", 0777);
     FILE *fp1 = fopen("/sd/mydir/sdtest.txt", "r"); 
@@ -584,27 +559,11 @@
         lcd.printf("You did not set\n\n");
         lcd.printf("A new high score\n\n");
         lcd.printf("Press reset to\n\n");
-        lcd.printf("Try again)");
+        lcd.printf("Try again");
     }
 
-
-/*
-    FILE *fp2 = fopen("/sd/mydir/sdtest.txt", "r"); 
-    if(fp2 == NULL) 
-    { 
-    error("Could not open file for read\n"); 
-    }
-    pc.printf("Opened file for read\n\r");
-    fscanf (fp2, "%s", str);
-    sscanf(str, "%d", &please);
-    pc.printf ("I have read:   %s \n",str);
-    fclose(fp2);
- if (please == 5)
- {
-    pc.printf("we got it\n");
-    }*/
-    pc.printf("Goodbye World!\n");
-    }//end
+pc.printf("Goodbye World!\n");
+}//end