juego 2

Dependencies:   mbed MPU6050

Revision:
2:205af2fe4225
Parent:
1:17e8d7967b5a
Child:
3:e936c097685c
diff -r 17e8d7967b5a -r 205af2fe4225 main.cpp
--- a/main.cpp	Fri Nov 16 12:15:24 2018 +0000
+++ b/main.cpp	Sat Nov 17 21:36:40 2018 +0000
@@ -3,7 +3,6 @@
 SPI deviceM(PB_15, PB_14, PB_13);
 DigitalOut ssel (PB_12);
 Serial a(USBTX,USBRX);
-Ticker cambio;
 MPU6050 Wire(PB_9,PB_8);
 InterruptIn iz(PA_14);
 InterruptIn de(PA_13);
@@ -22,10 +21,11 @@
 void colision();
 void juego();
 void accelerometro();
-void cambiof();
-int con;
+void cambio();
+void vell();
+int con=0;
 int az;
-
+////////////////////////////////////////
 void sendSPI(uint8_t d1, uint8_t d2)
 {
     deviceM.unlock();
@@ -35,16 +35,15 @@
     ssel=1;
     deviceM.lock(); 
 }
-   
+////////////////////////////////////////
 void borrar()
 {
  for(int i;i<=8;i++)   {
      sendSPI(i,0);
      }
 }
-   
+///////////////////////////////////////
 void inicializar(){
-                
                     a.baud(9600);
                     sendSPI(0x0c,1);
                     sendSPI(0x09,0);
@@ -58,11 +57,9 @@
                     vel=200;
                     carro=0b00011000;
     }
-    
+//////////////////////////////////////////
 void imprimir()
 {
-   
-    
     int c_d; //carro, obstaculo y entorno
     int c_e; //carro y entorno
     int din;
@@ -94,37 +91,31 @@
              if( (obs>>b)==carro && j==8 ){
                colision();
                  }
-             
+             accelerometro();
+             cambio();
              wait_ms(vel);
-                con++;
-                if(con==10){
-    vel=vel-10;}
     }
-    
 }
-
+//////////////////////////////////////////
 int main() {
-     cambio.attach(&cambiof,0.2);
      while(1){
-     accelerometro();
      juego();        
         }
 }
-
-
+///////////////////////////////////////////
 void juego(){
                     inicializar();   
-                    de.fall(&derecha);  
-                    iz.fall(&izquierda);  
+                    //de.rise(&derecha);  
+                    //iz.rise(&izquierda);  
                     a.printf("inicio\n");
                     while(1){
-                    con=0; 
                     b=2*(rand()%3);
-                    a.printf("numero %d\n",b);
-                     imprimir();  
+                    a.printf("umero %d\n",az);
+                    imprimir();
+                    vell();  
                     }
              }
-                    
+///////////////////////////////////
 void derecha()
 {
     if(carro==0b00011000 || carro==0b01100000)
@@ -132,6 +123,7 @@
     a.printf("entra der \n");
     return;
 }
+///////////////////////////////////
 void izquierda()
 {
     if( carro==0b00000110 ||  carro==0b00011000  )
@@ -139,7 +131,16 @@
     a.printf("entra izq \n");
     return;
 }
-
+////////////////////////////////////
+void cambio(){
+    switch(az){
+        case 1: carro = cam[0];break;
+        case 2: carro = cam[1];break;
+        case 3: carro = cam[2];break;
+        default: break;}
+    
+    }
+////////////////////////////////////
 void colision ()
 {
                  borrar();  
@@ -148,38 +149,29 @@
                  sendSPI(4,0b01111110);
                  sendSPI(5,0b01111110);
                  sendSPI(6,0b01111110);
+                 con=0;
+                 vel=200;
                  wait(2);
                  juego();
 }
-
+/////////////////////////////////////
 void accelerometro(){
-         
          Wire.getAccelero(q);
          a.printf("accelero: \t x=  %f,\t y=  %f, \t z= %f \n",q[0],q[1],q[2]);
-         int accelero[3]; 
-         //Wire.getAcceleroRaw(accelero);
-         int valor=accelero[1];
-         if(valor<=(2000) && valor>=(1000)){
+         int valor=q[1];
+         if(valor<=(-4) && valor>=(-10)){
            az=1;}
-         if(valor<(1000) && valor>=(-1000)){
+         if(valor<(4) && valor>=(-4)){
            az=2;}
-         if(valor<(-1000) && valor>=(-2000)){
+         if(valor<(10) && valor>=(4)){
            az=3;}
-         a.printf("holi : \t  %d \n",az);        
-         wait(0.8);
-         
+         a.printf("az : \t  %d \n",az);
     }
-
-void cambiof(){
-    
-    switch (az){
-        case 1: carro=cam[1];
-        break;
-        case 2: carro=cam[2];
-        break;
-        case 3: carro=cam[3];
-        break;
-        }
-    
-    
+/////////////////////////////////////
+void vell(){
+    con++;
+    if(con>2 && vel>=20)
+    {
+    vel=vel-(vel*0.2);
+    }
     }
\ No newline at end of file