Yosef Guevara Salamanca
/
TETS_PC
bien spi no se queda pegado
Revision 29:ba0b251a0ed1, committed 2018-10-17
- 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 |
diff -r 3f3f8fee4d85 -r ba0b251a0ed1 tetris_pc.cpp --- 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);