pong game added to the main sketch

Dependencies:   RTC-DS1307 SPI_TFT_ILI9341 TFT_fonts mbed tsi_sensor

Fork of MainSketch by IoT Ox

Revision:
9:eee503060d69
Parent:
8:b9aa9fdf286b
Child:
10:9d9b3b9b28b8
--- a/main.cpp	Tue May 23 23:04:03 2017 +0000
+++ b/main.cpp	Wed May 24 03:11:29 2017 +0000
@@ -1,106 +1,9 @@
-// example to test the TFT Display from Mikroelectronika
-
-#include "stdio.h"
-#include "mbed.h"
-#include "SPI_TFT_ILI9341.h"
-#include "string"
-#include "Arial12x12.h"
-#include "Arial24x23.h"
-#include "Arial28x28.h"
-#include "font_big.h"
-
+#include "libs.h"
+int f_state, f_button;
+bool f_alarm;
 DigitalIn sw_w(SW3);
-Serial pc(USBTX,USBRX,"pc");
-
-
-
-
-// the display has a backlight switch on board
-//DigitalOut LCD_LED(PTA4);   // may not be needed on mikroelectronika board
-//DigitalOut pwr(PTD7); // ditto
-
-// the TFT is connected to SPI pin 5-7
-//SPI_TFT_ILI9341 TFT(p5, p6, p7, p8, p9, p10,"TFT"); // mosi, miso, sclk, cs, reset, dc for lpc1768
-SPI_TFT_ILI9341 TFT(PTD6, PTD7, PTD5, PTD2, PTD4, PTA13,"TFT"); // mosi, miso, sclk, cs, reset, dc for frdmkl25z
-//NB better combination to use a coherent 2x4 block for lcd
-//   SPI_TFT_ILI9341 TFT(PTD2, PTD3, PTD1, PTA16, PTA17, PTC16,"TFT"); // mosi, miso, sclk, cs, reset, dc for frdmkl25z
-//   DigitalOut LCD_LED(PTC17);
-int touching=0;
-
-// Subroutine to read the x location of the touch point
-// need to set x+ to 3V and ground x- then read analogue voltage on ym
-//nb need to add a check for actual touch as opposed to random crap
-int readX()
-{
-    int delta=0,xv1=0,xv2=0,k=0;
-    int temp1=0,temp2=0;
-
-    AnalogIn yp(PTB3);
-    AnalogIn ym(PTB2);
-    DigitalOut xp(PTB0);
-    DigitalOut xm(PTB1);
 
-    xp=1; // set positive sdie of x high
-    xm=0;
-    // dont need to do anyhting to set low side as it should be fine.
-    // but do need to disconnect yp
-    //yp.PinMode(PullNone)
-    delta = 0;
-    for(k=0; k<10; k++) { // make 10 readings to average
-        temp1= (int)ym.read_u16();
-        temp2 = (int)yp.read_u16();
-        xv1+=temp1;  // get value
-        xv2+=temp2; // get other value
-        delta+= abs(temp1-temp2)/10;
-        pc.printf("val1 = %d - val2 = %d-diff = %d\n\r",temp1,temp2,temp1-temp2);
-    }
-    //delta=abs(xv2-xv1)/10;
-    if(delta<300) touching=1;
-    else touching=0;
-    pc.printf("delta=%d \t %d\n\r",delta,touching);
-    xp=0;
-    xm=0;
-    return(xv2/10); //maybe better to return the average of both....
-}
-// subroutine to read y values - has different pin functions ..
-int readY()
-{
-    DigitalOut yp(PTB3);
-    DigitalOut ym(PTB2);
-    AnalogIn xp(PTB0);
-    AnalogIn xm(PTB1);
-
-    yp=1; // set positive sdie of x high
-    ym=0;
-    // dont need to do anyhting to set low side as it should be fine.
-    // but do need to disconnect yp
-    //yp.PinMode(PullNone)
-    int yval=(int)xm.read_u16();  // get value
-    pc.printf("yval=%d",yval);
-    yp=0;
-    ym=0;
-    return(yval);
-
-}
-
-void drawbuttons()
-{
-    TFT.fillrect(0,0,50,50,Red);
-    TFT.fillrect(50,0,100,50,Green);
-    TFT.fillrect(100,0,150,50,Blue);
-    TFT.fillrect(150,0,200,50,White);
-    TFT.fillrect(200,0,240,50,Black);
-
-    TFT.rect(0,0,50,50,White);
-    TFT.rect(50,0,100,50,White);
-    TFT.rect(100,0,150,50,White);
-    TFT.rect(150,0,200,50,White);
-    TFT.rect(200,0,240,50,White);
-
-}
-
-
-int main()
+void main()
 {
    // pc.baud(115200);
     int color=0;
@@ -117,55 +20,21 @@
     TFT.foreground(White);    // set chars to white
     TFT.cls();                // clear the screen
 
-    //first show the 4 directions
-    TFT.set_orientation(0);
-    TFT.background(Black);
-    TFT.cls();
-
+    
     TFT.set_font((unsigned char*) Arial12x12);
-    TFT.locate(0,0);
-    printf(" 0 Hello Mbed 0");
-    TFT.set_orientation(1);
-    TFT.locate(0,0);
-    printf(" 1 Hello Mbed 1");
-    TFT.set_orientation(2);
-    TFT.locate(0,0);
-    printf(" 2 Hello Mbed 2");
-    TFT.set_orientation(3);
-    TFT.locate(0,0);
-    printf(" 3 Hello Mbed 3");
-    TFT.set_orientation(3);
-    TFT.set_font((unsigned char*) Arial24x23);
-    TFT.locate(50,100);
-    TFT.printf("TFT orientation 3");
-    TFT.set_orientation(0);
-
-    for(i=0; i<10; i++) {
-        wait(0.2);        // wait one seconds
-        TFT.locate(50,160);
-        TFT.printf("count %d",i);
-    }
-    TFT.set_orientation(0);
-    TFT.cls();
-    //   LCD_LED = 1;
-    //cornwer markers
-    TFT.fillcircle(10,10,5,0xffff);
-    TFT.fillcircle(230,10,5,0xffff);
-    TFT.fillcircle(230,310,5,0xffff);
-    TFT.fillcircle(10,310,5,0xffff);
     drawbuttons();
     while(1==1) {
-        while (sw_w == 1) {}
-        xpos=readX();
-        ypos=readY();
+      
+        xp=readX();
+        yp=readY();
         // top chunk of the screen is the button area //
         // 0<y<50 is palette area //
 
         //pc.printf("xpos=%d\t,\typo=%d",xpos,ypos);
-        xp=(240*(xpos-5800))/51200;
-        yp=320-(320*(ypos-3000))/58300;
+       // xp=(240*(xpos-5800))/51200;
+       // yp=320-(320*(ypos-3000))/58300;
         if(touching==1) pc.printf("\txp=%d\t,\typo=%d\n\r",xp,yp);
-        if(xp>5 && yp>50 && touching==1) TFT.fillcircle(xp,yp,2,color);
+        if(xp>5 && yp>50 && touching==1) TFT.fillcircle(yp,xp,2,color);
         if(yp<50) { // color buttons
             sw=(int)xp/50;
             switch(sw) {
@@ -192,7 +61,7 @@
             // if(xp>100 && xp<150) color=0x001f;
         }
 
-        wait(1);
+        wait(0.01);
 
     }