bien spi no se queda pegado

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
djinn77
Date:
Wed Oct 17 06:16:07 2018 +0000
Parent:
28:3f3f8fee4d85
Commit message:
funcionando casi todo

Changed in this revision

tetris_pc.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/tetris_pc.cpp	Tue Oct 16 06:09:03 2018 +0000
+++ b/tetris_pc.cpp	Wed Oct 17 06:16:07 2018 +0000
@@ -2,15 +2,21 @@
 #include "piezas.h"
 //#define DEBUG 1
 
+
 Serial pc(USBTX,USBRX);    
 SPI deviceM(PB_15, PB_14, PB_13);  //SE DEFINE EL LED QUE ACTIVARA  EL DISPOSITIVO
 DigitalOut ssel (PB_12);
 DigitalIn pulsador_izq(A5); //pulsador conector izquierdo
 DigitalIn pulsador_der(A4); //pulsador conector derecho
 DigitalIn p_giro(A3); //pulsador conector giro
+
+//Declaracion de funciones
+void inicializar();
+void pulsador_der();
+
 uint16_t* girar(uint16_t* pieza, int posicion);
 int memoria[8]={0};
-
+int *pointer=0;
 void debuging(char*s,...){
     
     #if DEBUG
@@ -41,11 +47,11 @@
     int j=1;  // inicia el contador j en 1        
            
            while(pulsador_izq ==1 & pulsador_der==0 & p_giro == 0 && posicion<izq){
-            pc.printf("\n >>>>>>>>>>>>FERNEY PRUEBA1 giro  %d, posicion %d, izq %d, der %d\n ",giro, posicion,izq,der);
+            //pc.printf("\n >>>>>>>>>>>>FERNEY PRUEBA1 giro  %d, posicion %d, izq %d, der %d\n ",giro, posicion,izq,der);
             posicion++;
             for(int ci=7; ci >=0; ci--){
                 pc.printf("\n hacia la izq:\n ");
-           pc.printf("\n >>>>>>>>>>>>FERNEY PRUEBA1 IZQ giro  %d, posicion %d\n ",giro, posicion);
+            //pc.printf("\n >>>>>>>>>>>>FERNEY PRUEBA1 IZQ giro  %d, posicion %d\n ",giro, posicion);
                 imprimir[ci]=imprimir[ci-1];
                 if(ci==0){
                     imprimir[ci]=0;
@@ -60,8 +66,8 @@
             }
             
             while(pulsador_der ==1 & pulsador_izq ==0 & p_giro == 0 && posicion>der){
-            pc.printf("\n hacia la der:\n ");
-            pc.printf("\n >>>>>>>>>>>>FERNEY PRUEBA1 DER giro  %d, posicion %d, izq %d, der %d\n ",giro, posicion,izq,der);
+            //pc.printf("\n hacia la der:\n ");
+            //pc.printf("\n >>>>>>>>>>>>FERNEY PRUEBA1 DER giro  %d, posicion %d, izq %d, der %d\n ",giro, posicion,izq,der);
             posicion--;
             for(int k=0; k <8; k++){
  
@@ -79,14 +85,14 @@
             }  
    if(p_giro == 1 & pulsador_der ==0 & pulsador_izq ==0){
            giro++;
-           pc.printf("\n >>>>>>>>>>>>FERNEY PRUEBA GIRO giro  %d, posicion %d, izq %d, der %d\n ",giro, posicion,izq,der);
+           //pc.printf("\n >>>>>>>>>>>>FERNEY PRUEBA GIRO giro  %d, posicion %d, izq %d, der %d\n ",giro, posicion,izq,der);
            if(giro ==4){
                giro=0;
                }
            switch(figura){ //Este switch escoje la figura con que trabajaar
              case 0: // L
              if(giro == 0)
-             imprimir=PZA_L;
+             imprimir= girar(PZA_L, posicion);
              izq=6, der = 0;
              auxi=7;          
              if(giro == 1)
@@ -104,45 +110,45 @@
              break;
              case 1://T       
              if(giro == 0)
-             imprimir=PZA_T;
+             imprimir= girar(PZA_T, posicion);
              izq=5, der = 0;
              auxi=9;
              if(giro == 1)
-             imprimir=PZA_TN;
+             imprimir= girar(PZA_TN, posicion);
              izq=6, der = 0;
              auxi=8;
              if(giro == 2)
-             imprimir=PZA_TO;
+             imprimir= girar(PZA_TO, posicion);
              izq=5, der = 0;
              auxi=8;
              if(giro == 3)
-             imprimir=PZA_TD;
+             imprimir= girar(PZA_TD, posicion);
              izq=5, der = -1;
              auxi=8;
              break;
              case 2://I
              if(giro == 0 || giro == 2)
-             imprimir=PZA_I;
+             imprimir= girar(PZA_I, posicion);
              izq=6, der = -1;
              auxi=8;
              if(giro == 1 || giro == 3)
-             imprimir=PZA_IR;
+             imprimir=girar(PZA_IR, posicion);
              izq=5, der = 0;
              auxi=9;
              break;
              case 3://Cuadrado
              if(giro == 0 || giro == 1 || giro == 2 || giro == 3)
-             imprimir=PZA_C;
+             imprimir= girar(PZA_C, posicion);
              izq=6, der = 0;
              auxi=9;
              break;   
              case 4: //Z
              if(giro == 0 || giro == 2)
-             imprimir=PZA_Z;
+             imprimir= girar(PZA_Z, posicion);
              izq=5, der = 0;
              auxi=9;
              if(giro == 1 || giro == 3)
-             imprimir=PZA_ZN;
+             imprimir= girar(PZA_ZN, posicion);
              izq=6, der = 0;
              auxi=8;
              break;
@@ -163,7 +169,12 @@
          
          for(int k=0; k<8;k++){                          // Almacena todos lo datos del vector en la posicion que corrimiento en la memoria
               memoria[k]= memoria[k]|(imprimir[k]>>i);
-
+             pointer= &memoria[k];
+             pc.printf("\n pointer %d \n", *pointer);
+             if(*pointer==511){
+                 NVIC_SystemReset();
+                 }
+             
              }
     
          }
@@ -272,8 +283,8 @@
     
     sendSPI(0x0c,1);    
     sendSPI(0x0b,7);
-    sendSPI(0x09,0);    //SELECCIONA LA LUMINOSIDAD DE LA MATRIZ
-    sendSPI(0x0A,0x0f); //SELECCIONA LA LUMINOSIDAD DE LA MATRIZ
+    sendSPI(0x09,0);   
+    sendSPI(0x0A,0x00); //SELECCIONA LA LUMINOSIDAD DE LA MATRIZ
     int i;
     for (i=0;i<2;i++){
         sendSPI(0x0F,1);