bien spi no se queda pegado

Dependencies:   mbed

Committer:
djinn77
Date:
Tue Sep 11 21:09:41 2018 +0000
Revision:
0:4b2603e81763
Child:
1:d99b6299bad8
Funcionando Casi todo;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
djinn77 0:4b2603e81763 1 #include "mbed.h"
djinn77 0:4b2603e81763 2
djinn77 0:4b2603e81763 3 #define DEBUG 1
djinn77 0:4b2603e81763 4
djinn77 0:4b2603e81763 5 Serial pc(USBTX,USBRX);
djinn77 0:4b2603e81763 6 SPI deviceM(PB_15, PB_14, PB_13);
djinn77 0:4b2603e81763 7 DigitalOut ssel (PB_12);
djinn77 0:4b2603e81763 8
djinn77 0:4b2603e81763 9 int matriz[8]={0};
djinn77 0:4b2603e81763 10
djinn77 0:4b2603e81763 11 void debuging(char*s,...){
djinn77 0:4b2603e81763 12
djinn77 0:4b2603e81763 13 #if DEBUG
djinn77 0:4b2603e81763 14 pc.printf(s);
djinn77 0:4b2603e81763 15 #endif
djinn77 0:4b2603e81763 16
djinn77 0:4b2603e81763 17 }
djinn77 0:4b2603e81763 18
djinn77 0:4b2603e81763 19 void sendSPI(uint8_t d1, uint8_t d2)
djinn77 0:4b2603e81763 20 {
djinn77 0:4b2603e81763 21 deviceM.unlock();
djinn77 0:4b2603e81763 22 ssel=0;
djinn77 0:4b2603e81763 23 deviceM.write(d1);
djinn77 0:4b2603e81763 24 deviceM.write(d2);
djinn77 0:4b2603e81763 25 ssel=1;
djinn77 0:4b2603e81763 26 deviceM.lock();
djinn77 0:4b2603e81763 27 };
djinn77 0:4b2603e81763 28 void imprimir(){
djinn77 0:4b2603e81763 29 // Sele aplica corrmiento a las posiciones del vecteor para facilitar selecccion de la posicion.
djinn77 0:4b2603e81763 30
djinn77 0:4b2603e81763 31 for(int i=0;i<=12;i++)
djinn77 0:4b2603e81763 32 {
djinn77 0:4b2603e81763 33 for (int j= 1; j<=8; j++){
djinn77 0:4b2603e81763 34
djinn77 0:4b2603e81763 35 sendSPI(j,matriz[j-1]>>i);
djinn77 0:4b2603e81763 36 }
djinn77 0:4b2603e81763 37 wait(1.0);
djinn77 0:4b2603e81763 38 }
djinn77 0:4b2603e81763 39
djinn77 0:4b2603e81763 40 }
djinn77 0:4b2603e81763 41 void mostrar(){
djinn77 0:4b2603e81763 42
djinn77 0:4b2603e81763 43 pc.baud(38400);
djinn77 0:4b2603e81763 44 char pos= 0;
djinn77 0:4b2603e81763 45 char figura= 0;
djinn77 0:4b2603e81763 46 char giro= 0;
djinn77 0:4b2603e81763 47 debuging("\n Ingrese el posicion. ");
djinn77 0:4b2603e81763 48 pos=pc.getc();
djinn77 0:4b2603e81763 49 debuging("\n Seleccione la Figura. ");
djinn77 0:4b2603e81763 50 figura=pc.getc();
djinn77 0:4b2603e81763 51 debuging("\n Seleccione la rotacion. ");
djinn77 0:4b2603e81763 52 giro=pc.getc();
djinn77 0:4b2603e81763 53
djinn77 0:4b2603e81763 54
djinn77 0:4b2603e81763 55 switch(figura){
djinn77 0:4b2603e81763 56 case 1:
djinn77 0:4b2603e81763 57 // Cuadrado
djinn77 0:4b2603e81763 58 switch(giro){
djinn77 0:4b2603e81763 59 case 1: case 2: case 3: case 4:
djinn77 0:4b2603e81763 60 matriz[pos]= 0b11000000000;
djinn77 0:4b2603e81763 61 matriz[pos+1]=0b11000000000;
djinn77 0:4b2603e81763 62 imprimir();
djinn77 0:4b2603e81763 63 break;
djinn77 0:4b2603e81763 64 }
djinn77 0:4b2603e81763 65 break;
djinn77 0:4b2603e81763 66 case 2:
djinn77 0:4b2603e81763 67 //T
djinn77 0:4b2603e81763 68 switch(giro){
djinn77 0:4b2603e81763 69 case 1:
djinn77 0:4b2603e81763 70 matriz[pos]= 0b10000000000;
djinn77 0:4b2603e81763 71 matriz[pos+1]=0b11000000000;
djinn77 0:4b2603e81763 72 matriz[pos+2]=0b10000000000;
djinn77 0:4b2603e81763 73 imprimir();
djinn77 0:4b2603e81763 74 break;
djinn77 0:4b2603e81763 75 case 2:
djinn77 0:4b2603e81763 76 matriz[pos]= 0b01000000000;
djinn77 0:4b2603e81763 77 matriz[pos+1]=0b11100000000;
djinn77 0:4b2603e81763 78 imprimir();
djinn77 0:4b2603e81763 79 break;
djinn77 0:4b2603e81763 80 case 3:
djinn77 0:4b2603e81763 81 matriz[pos]= 0b11100000000;
djinn77 0:4b2603e81763 82 matriz[pos+1]=0b01000000000;
djinn77 0:4b2603e81763 83 imprimir();
djinn77 0:4b2603e81763 84 break;
djinn77 0:4b2603e81763 85 case 4:
djinn77 0:4b2603e81763 86 matriz[pos]= 0b01000000000;
djinn77 0:4b2603e81763 87 matriz[pos+1]=0b11000000000;
djinn77 0:4b2603e81763 88 matriz[pos+2]=0b01000000000;
djinn77 0:4b2603e81763 89 imprimir();
djinn77 0:4b2603e81763 90 break;
djinn77 0:4b2603e81763 91 }
djinn77 0:4b2603e81763 92
djinn77 0:4b2603e81763 93 break;
djinn77 0:4b2603e81763 94 case 3:
djinn77 0:4b2603e81763 95 //L
djinn77 0:4b2603e81763 96 switch(giro){
djinn77 0:4b2603e81763 97 case 1:
djinn77 0:4b2603e81763 98 matriz[pos]= 0b11000000000;
djinn77 0:4b2603e81763 99 matriz[pos+1]=0b10000000000;
djinn77 0:4b2603e81763 100 matriz[pos+2]=0b10000000000;
djinn77 0:4b2603e81763 101 imprimir();
djinn77 0:4b2603e81763 102 break;
djinn77 0:4b2603e81763 103 case 2:
djinn77 0:4b2603e81763 104 matriz[pos]= 0b111000000000;
djinn77 0:4b2603e81763 105 matriz[pos+1]=0b001000000000;
djinn77 0:4b2603e81763 106 imprimir();
djinn77 0:4b2603e81763 107 break;
djinn77 0:4b2603e81763 108 case 3:
djinn77 0:4b2603e81763 109 matriz[pos]= 0b01000000000;
djinn77 0:4b2603e81763 110 matriz[pos+1]=0b01000000000;
djinn77 0:4b2603e81763 111 matriz[pos+2]=0b11000000000;
djinn77 0:4b2603e81763 112 imprimir();
djinn77 0:4b2603e81763 113 break;
djinn77 0:4b2603e81763 114 case 4:
djinn77 0:4b2603e81763 115 matriz[pos]= 0b10000000000;
djinn77 0:4b2603e81763 116 matriz[pos+1]=0b11100000000;
djinn77 0:4b2603e81763 117 imprimir();
djinn77 0:4b2603e81763 118 break;
djinn77 0:4b2603e81763 119 }
djinn77 0:4b2603e81763 120 break;
djinn77 0:4b2603e81763 121 case 4:
djinn77 0:4b2603e81763 122 //Z
djinn77 0:4b2603e81763 123 switch(giro){
djinn77 0:4b2603e81763 124 case 1: case 3:
djinn77 0:4b2603e81763 125 matriz[pos]= 0b01000000000;
djinn77 0:4b2603e81763 126 matriz[pos+1]=0b11000000000;
djinn77 0:4b2603e81763 127 matriz[pos+2]=0b10000000000;
djinn77 0:4b2603e81763 128 imprimir();
djinn77 0:4b2603e81763 129 break;
djinn77 0:4b2603e81763 130 case 2: case 4:
djinn77 0:4b2603e81763 131 matriz[pos]= 0b11000000000;
djinn77 0:4b2603e81763 132 matriz[pos+1]=0b01100000000;
djinn77 0:4b2603e81763 133 imprimir();
djinn77 0:4b2603e81763 134 break;
djinn77 0:4b2603e81763 135
djinn77 0:4b2603e81763 136 }
djinn77 0:4b2603e81763 137 break;
djinn77 0:4b2603e81763 138 case 5:
djinn77 0:4b2603e81763 139 switch(giro){
djinn77 0:4b2603e81763 140 case 1: case 3:
djinn77 0:4b2603e81763 141 matriz[pos]= 0b10000000000;
djinn77 0:4b2603e81763 142 matriz[pos+1]=0b10000000000;
djinn77 0:4b2603e81763 143 matriz[pos+2]=0b10000000000;
djinn77 0:4b2603e81763 144 imprimir();
djinn77 0:4b2603e81763 145 break;
djinn77 0:4b2603e81763 146 case 2: case 4:
djinn77 0:4b2603e81763 147 matriz[pos]= 0b11100000000;
djinn77 0:4b2603e81763 148 imprimir();
djinn77 0:4b2603e81763 149 break;
djinn77 0:4b2603e81763 150 }
djinn77 0:4b2603e81763 151
djinn77 0:4b2603e81763 152 break;
djinn77 0:4b2603e81763 153
djinn77 0:4b2603e81763 154
djinn77 0:4b2603e81763 155
djinn77 0:4b2603e81763 156
djinn77 0:4b2603e81763 157
djinn77 0:4b2603e81763 158 }
djinn77 0:4b2603e81763 159 matriz[0]=0;
djinn77 0:4b2603e81763 160 matriz[1]=0;
djinn77 0:4b2603e81763 161 matriz[2]=0;
djinn77 0:4b2603e81763 162 matriz[3]=0;
djinn77 0:4b2603e81763 163 matriz[4]=0;
djinn77 0:4b2603e81763 164 matriz[5]=0;
djinn77 0:4b2603e81763 165 matriz[6]=0;
djinn77 0:4b2603e81763 166 matriz[7]=0;
djinn77 0:4b2603e81763 167
djinn77 0:4b2603e81763 168 }
djinn77 0:4b2603e81763 169 void inicializar(){
djinn77 0:4b2603e81763 170
djinn77 0:4b2603e81763 171 sendSPI(0x0c,1);
djinn77 0:4b2603e81763 172 sendSPI(0x0b,7);
djinn77 0:4b2603e81763 173 sendSPI(0x09,0);
djinn77 0:4b2603e81763 174 sendSPI(0x0A,0x0f);
djinn77 0:4b2603e81763 175 int i;
djinn77 0:4b2603e81763 176 for (i=0;i<2;i++){
djinn77 0:4b2603e81763 177 sendSPI(0x0F,1);
djinn77 0:4b2603e81763 178 wait (0.5);
djinn77 0:4b2603e81763 179 sendSPI(0x0f,0);
djinn77 0:4b2603e81763 180 wait (0.5);
djinn77 0:4b2603e81763 181 }
djinn77 0:4b2603e81763 182
djinn77 0:4b2603e81763 183 }
djinn77 0:4b2603e81763 184
djinn77 0:4b2603e81763 185
djinn77 0:4b2603e81763 186 int main() {
djinn77 0:4b2603e81763 187 inicializar();
djinn77 0:4b2603e81763 188 while(1){
djinn77 0:4b2603e81763 189 mostrar();
djinn77 0:4b2603e81763 190 }
djinn77 0:4b2603e81763 191
djinn77 0:4b2603e81763 192
djinn77 0:4b2603e81763 193
djinn77 0:4b2603e81763 194
djinn77 0:4b2603e81763 195 }