cualquier cosa

Dependencies:   mbed

Fork of 00_LAB_matrix8x8_SPI by ferney alberto beltran molina

Committer:
oggonei
Date:
Mon Sep 03 00:55:50 2018 +0000
Revision:
4:b38a9b0501dc
Parent:
3:4a8de2f71ed0
Child:
5:377b23953ba1
tetriz matriz 8x8

Who changed what in which revision?

UserRevisionLine numberNew contents of line
oggonei 4:b38a9b0501dc 1 #include "mbed.h"
fabeltranm 0:61199d9d0aed 2
oggonei 4:b38a9b0501dc 3 SPI deviceM(PB_5, PB_4, PB_3);
oggonei 4:b38a9b0501dc 4 DigitalOut ssel (PB_9);
oggonei 4:b38a9b0501dc 5
oggonei 4:b38a9b0501dc 6 //#define uint8_t unsigned char
oggonei 4:b38a9b0501dc 7 //uint8_t vcol2[8]={0,0,0,0,0,0,0,0};
fabeltranm 0:61199d9d0aed 8
oggonei 4:b38a9b0501dc 9 int enviarficha(int x,int y)
oggonei 4:b38a9b0501dc 10 {
oggonei 4:b38a9b0501dc 11 int k=y;
oggonei 4:b38a9b0501dc 12
oggonei 4:b38a9b0501dc 13 if(x==1) // cuadrado
oggonei 4:b38a9b0501dc 14 {
oggonei 4:b38a9b0501dc 15 return k;
oggonei 4:b38a9b0501dc 16 }
oggonei 4:b38a9b0501dc 17 else if (x==2) //linea
oggonei 4:b38a9b0501dc 18 {
oggonei 4:b38a9b0501dc 19 return k;
oggonei 4:b38a9b0501dc 20 }
oggonei 4:b38a9b0501dc 21 else if (x==3) //ele
oggonei 4:b38a9b0501dc 22 {
oggonei 4:b38a9b0501dc 23 return k;
oggonei 4:b38a9b0501dc 24 }
oggonei 4:b38a9b0501dc 25 else if (x==4) //te
oggonei 4:b38a9b0501dc 26 {
oggonei 4:b38a9b0501dc 27 return k;
oggonei 4:b38a9b0501dc 28 }
oggonei 4:b38a9b0501dc 29 else if (x==5) //ese
oggonei 4:b38a9b0501dc 30 {
oggonei 4:b38a9b0501dc 31 return k;
oggonei 4:b38a9b0501dc 32 }
oggonei 4:b38a9b0501dc 33 else
oggonei 4:b38a9b0501dc 34 return 1;
oggonei 4:b38a9b0501dc 35 }
fabeltranm 0:61199d9d0aed 36
fabeltranm 0:61199d9d0aed 37 void sendSPI(uint8_t d1, uint8_t d2)
fabeltranm 0:61199d9d0aed 38 {
fabeltranm 0:61199d9d0aed 39 deviceM.unlock();
fabeltranm 0:61199d9d0aed 40 ssel=0;
oggonei 4:b38a9b0501dc 41 deviceM.write(d1);
oggonei 4:b38a9b0501dc 42 deviceM.write(d2);
fabeltranm 0:61199d9d0aed 43 ssel=1;
fabeltranm 0:61199d9d0aed 44 deviceM.lock();
fabeltranm 0:61199d9d0aed 45 };
fabeltranm 0:61199d9d0aed 46
oggonei 4:b38a9b0501dc 47 void test() //test
oggonei 4:b38a9b0501dc 48 {
oggonei 4:b38a9b0501dc 49 sendSPI(0x0F,1);
oggonei 4:b38a9b0501dc 50 wait(0.5);
oggonei 4:b38a9b0501dc 51 sendSPI(0x0F,0);
oggonei 4:b38a9b0501dc 52 wait(0.5);
oggonei 4:b38a9b0501dc 53 };
fabeltranm 0:61199d9d0aed 54
oggonei 4:b38a9b0501dc 55 void cuadro(int x)
fabeltranm 0:61199d9d0aed 56 {
oggonei 4:b38a9b0501dc 57 int j,r;
oggonei 4:b38a9b0501dc 58
oggonei 4:b38a9b0501dc 59 if (x==1)
oggonei 4:b38a9b0501dc 60 r=0xC0;
oggonei 4:b38a9b0501dc 61 else if(x==2)
oggonei 4:b38a9b0501dc 62 r=0x60;
oggonei 4:b38a9b0501dc 63 else if(x==3)
oggonei 4:b38a9b0501dc 64 r=0x30;
oggonei 4:b38a9b0501dc 65 else if(x==4)
oggonei 4:b38a9b0501dc 66 r=0x18;
oggonei 4:b38a9b0501dc 67 else if(x==5)
oggonei 4:b38a9b0501dc 68 r=0xC;
oggonei 4:b38a9b0501dc 69 else if(x==6)
oggonei 4:b38a9b0501dc 70 r=0x06;
oggonei 4:b38a9b0501dc 71 else if(x==7)
oggonei 4:b38a9b0501dc 72 r=0x03;
oggonei 4:b38a9b0501dc 73 else if(x==8)
oggonei 4:b38a9b0501dc 74 r=0x01;
oggonei 4:b38a9b0501dc 75 {
oggonei 4:b38a9b0501dc 76 for(j=0;j<=7;j++)
oggonei 4:b38a9b0501dc 77 {
oggonei 4:b38a9b0501dc 78 sendSPI(0x0+j,r);
oggonei 4:b38a9b0501dc 79 sendSPI(0x0+(j+1),r);
oggonei 4:b38a9b0501dc 80 wait_ms(200);
oggonei 4:b38a9b0501dc 81 sendSPI(0x0+j,0x00);
oggonei 4:b38a9b0501dc 82 sendSPI(0x0+(j+1),0x00);
oggonei 4:b38a9b0501dc 83 wait_us(10);
oggonei 4:b38a9b0501dc 84 }
oggonei 4:b38a9b0501dc 85 sendSPI(0x07,r);
oggonei 4:b38a9b0501dc 86 sendSPI(0x08,r);
oggonei 4:b38a9b0501dc 87 }
oggonei 4:b38a9b0501dc 88 };
fabeltranm 2:414129d953dd 89
oggonei 4:b38a9b0501dc 90 void linea(int x)
oggonei 4:b38a9b0501dc 91 {
oggonei 4:b38a9b0501dc 92 int j,r;
oggonei 4:b38a9b0501dc 93
oggonei 4:b38a9b0501dc 94 if (x==1)
oggonei 4:b38a9b0501dc 95 r=0x80;
oggonei 4:b38a9b0501dc 96 else if(x==2)
oggonei 4:b38a9b0501dc 97 r=0x40;
oggonei 4:b38a9b0501dc 98 else if(x==3)
oggonei 4:b38a9b0501dc 99 r=0x20;
oggonei 4:b38a9b0501dc 100 else if(x==4)
oggonei 4:b38a9b0501dc 101 r=0x10;
oggonei 4:b38a9b0501dc 102 else if(x==5)
oggonei 4:b38a9b0501dc 103 r=0x08;
oggonei 4:b38a9b0501dc 104 else if(x==6)
oggonei 4:b38a9b0501dc 105 r=0x04;
oggonei 4:b38a9b0501dc 106 else if(x==7)
oggonei 4:b38a9b0501dc 107 r=0x02;
oggonei 4:b38a9b0501dc 108 else if(x==8)
oggonei 4:b38a9b0501dc 109 r=0x01;
fabeltranm 2:414129d953dd 110 {
oggonei 4:b38a9b0501dc 111 for(j=0;j<=6;j++)
oggonei 4:b38a9b0501dc 112 {
oggonei 4:b38a9b0501dc 113 sendSPI(0x0+j,r);
oggonei 4:b38a9b0501dc 114 sendSPI(0x0+(j+1),r);
oggonei 4:b38a9b0501dc 115 sendSPI(0x0+(j+2),r);
oggonei 4:b38a9b0501dc 116 wait_ms(200);
oggonei 4:b38a9b0501dc 117 sendSPI(0x0+j,0x00);
oggonei 4:b38a9b0501dc 118 sendSPI(0x0+(j+1),0x00);
oggonei 4:b38a9b0501dc 119 sendSPI(0x0+(j+2),0x00);
oggonei 4:b38a9b0501dc 120 wait_us(10);
oggonei 4:b38a9b0501dc 121 }
oggonei 4:b38a9b0501dc 122 sendSPI(0x06,r);
oggonei 4:b38a9b0501dc 123 sendSPI(0x07,r);
oggonei 4:b38a9b0501dc 124 sendSPI(0x08,r);
oggonei 4:b38a9b0501dc 125 }
oggonei 4:b38a9b0501dc 126 };
oggonei 4:b38a9b0501dc 127
oggonei 4:b38a9b0501dc 128 void ele(int x)
fabeltranm 2:414129d953dd 129 {
oggonei 4:b38a9b0501dc 130 int j,r,r2;
oggonei 4:b38a9b0501dc 131 if (x==1)
oggonei 4:b38a9b0501dc 132 {
oggonei 4:b38a9b0501dc 133 r=0xC0;
oggonei 4:b38a9b0501dc 134 r2=0x80;
oggonei 4:b38a9b0501dc 135 }
oggonei 4:b38a9b0501dc 136 else if(x==2)
oggonei 4:b38a9b0501dc 137 {
oggonei 4:b38a9b0501dc 138 r=0x60;
oggonei 4:b38a9b0501dc 139 r2=0x40;
oggonei 4:b38a9b0501dc 140 }
oggonei 4:b38a9b0501dc 141 else if(x==3)
oggonei 4:b38a9b0501dc 142 {
oggonei 4:b38a9b0501dc 143 r=0x30;
oggonei 4:b38a9b0501dc 144 r2=0x20;
oggonei 4:b38a9b0501dc 145 }
oggonei 4:b38a9b0501dc 146 else if(x==4)
oggonei 4:b38a9b0501dc 147 {
oggonei 4:b38a9b0501dc 148 r=0x18;
oggonei 4:b38a9b0501dc 149 r2=0x10;
oggonei 4:b38a9b0501dc 150 }
oggonei 4:b38a9b0501dc 151 else if(x==5)
oggonei 4:b38a9b0501dc 152 {
oggonei 4:b38a9b0501dc 153 r=0xC;
oggonei 4:b38a9b0501dc 154 r2=0x08;
oggonei 4:b38a9b0501dc 155 }
oggonei 4:b38a9b0501dc 156 else if(x==6)
oggonei 4:b38a9b0501dc 157 {
oggonei 4:b38a9b0501dc 158 r=0x06;
oggonei 4:b38a9b0501dc 159 r2=0x04;
oggonei 4:b38a9b0501dc 160 }
oggonei 4:b38a9b0501dc 161 else if(x==7)
oggonei 4:b38a9b0501dc 162 {
oggonei 4:b38a9b0501dc 163 r=0x03;
oggonei 4:b38a9b0501dc 164 r2=0x02;
oggonei 4:b38a9b0501dc 165 }
oggonei 4:b38a9b0501dc 166 else if(x==8)
oggonei 4:b38a9b0501dc 167 {
oggonei 4:b38a9b0501dc 168 r=0x01;
oggonei 4:b38a9b0501dc 169 r2=0x01;
oggonei 4:b38a9b0501dc 170 }
oggonei 4:b38a9b0501dc 171 {
oggonei 4:b38a9b0501dc 172 for(j=0;j<=6;j++)
oggonei 4:b38a9b0501dc 173 {
oggonei 4:b38a9b0501dc 174 sendSPI(0x0+j,r2);
oggonei 4:b38a9b0501dc 175 sendSPI(0x0+(j+1),r2);
oggonei 4:b38a9b0501dc 176 sendSPI(0x0+(j+2),r);
oggonei 4:b38a9b0501dc 177 wait_ms(200);
oggonei 4:b38a9b0501dc 178 sendSPI(0x0+j,0x00);
oggonei 4:b38a9b0501dc 179 sendSPI(0x0+(j+1),0x00);
oggonei 4:b38a9b0501dc 180 sendSPI(0x0+(j+2),0x00);
oggonei 4:b38a9b0501dc 181 wait_us(10);
oggonei 4:b38a9b0501dc 182 }
oggonei 4:b38a9b0501dc 183 sendSPI(0x06,r2);
oggonei 4:b38a9b0501dc 184 sendSPI(0x07,r2);
oggonei 4:b38a9b0501dc 185 sendSPI(0x08,r);
oggonei 4:b38a9b0501dc 186 }
oggonei 4:b38a9b0501dc 187 };
fabeltranm 2:414129d953dd 188
oggonei 4:b38a9b0501dc 189 void te(int x)
fabeltranm 1:b732136485e0 190 {
oggonei 4:b38a9b0501dc 191 int j,r,r2;
oggonei 4:b38a9b0501dc 192
oggonei 4:b38a9b0501dc 193 if (x==1)
oggonei 4:b38a9b0501dc 194 {
oggonei 4:b38a9b0501dc 195 r=0xE0;
oggonei 4:b38a9b0501dc 196 r2=0x40;
oggonei 4:b38a9b0501dc 197 }
oggonei 4:b38a9b0501dc 198 else if(x==2)
oggonei 4:b38a9b0501dc 199 {
oggonei 4:b38a9b0501dc 200 r=0x70;
oggonei 4:b38a9b0501dc 201 r2=0x20;
oggonei 4:b38a9b0501dc 202 }
oggonei 4:b38a9b0501dc 203 else if(x==3)
oggonei 4:b38a9b0501dc 204 {
oggonei 4:b38a9b0501dc 205 r=0x38;
oggonei 4:b38a9b0501dc 206 r2=0x10;
oggonei 4:b38a9b0501dc 207 }
oggonei 4:b38a9b0501dc 208 else if(x==4)
oggonei 4:b38a9b0501dc 209 {
oggonei 4:b38a9b0501dc 210 r=0x1C;
oggonei 4:b38a9b0501dc 211 r2=0x8;
oggonei 4:b38a9b0501dc 212 }
oggonei 4:b38a9b0501dc 213 else if(x==5)
oggonei 4:b38a9b0501dc 214 {
oggonei 4:b38a9b0501dc 215 r=0xE;
oggonei 4:b38a9b0501dc 216 r2=0x4;
oggonei 4:b38a9b0501dc 217 }
oggonei 4:b38a9b0501dc 218 else if(x==6)
oggonei 4:b38a9b0501dc 219 {
oggonei 4:b38a9b0501dc 220 r=0x7;
oggonei 4:b38a9b0501dc 221 r2=0x2;
oggonei 4:b38a9b0501dc 222 }
oggonei 4:b38a9b0501dc 223 else if(x==7)
oggonei 4:b38a9b0501dc 224 {
oggonei 4:b38a9b0501dc 225 r=0x03;
oggonei 4:b38a9b0501dc 226 r2=0x1;
oggonei 4:b38a9b0501dc 227 }
oggonei 4:b38a9b0501dc 228 else if(x==8)
oggonei 4:b38a9b0501dc 229 r=0x01;
oggonei 4:b38a9b0501dc 230 {
oggonei 4:b38a9b0501dc 231 for(j=0;j<=7;j++)
oggonei 4:b38a9b0501dc 232 {
oggonei 4:b38a9b0501dc 233 sendSPI(0x0+j,r2);
oggonei 4:b38a9b0501dc 234 sendSPI(0x0+(j+1),r);
oggonei 4:b38a9b0501dc 235 wait_ms(200);
oggonei 4:b38a9b0501dc 236 sendSPI(0x0+j,0x00);
oggonei 4:b38a9b0501dc 237 sendSPI(0x0+(j+1),0x00);
oggonei 4:b38a9b0501dc 238 wait_us(10);
oggonei 4:b38a9b0501dc 239 }
oggonei 4:b38a9b0501dc 240 sendSPI(0x07,r2);
oggonei 4:b38a9b0501dc 241 sendSPI(0x08,r);
oggonei 4:b38a9b0501dc 242 }
oggonei 4:b38a9b0501dc 243 };
oggonei 4:b38a9b0501dc 244
oggonei 4:b38a9b0501dc 245 void ese(int x)
oggonei 4:b38a9b0501dc 246 {
oggonei 4:b38a9b0501dc 247 int j,r,r2;
fabeltranm 0:61199d9d0aed 248
oggonei 4:b38a9b0501dc 249 if (x==1)
oggonei 4:b38a9b0501dc 250 {
oggonei 4:b38a9b0501dc 251 r=0xC0;
oggonei 4:b38a9b0501dc 252 r2=0x60;
oggonei 4:b38a9b0501dc 253 }
oggonei 4:b38a9b0501dc 254 else if(x==2)
oggonei 4:b38a9b0501dc 255 {
oggonei 4:b38a9b0501dc 256 r=0x60;
oggonei 4:b38a9b0501dc 257 r2=0x30;
oggonei 4:b38a9b0501dc 258 }
oggonei 4:b38a9b0501dc 259 else if(x==3)
oggonei 4:b38a9b0501dc 260 {
oggonei 4:b38a9b0501dc 261 r=0x30;
oggonei 4:b38a9b0501dc 262 r2=0x18;
oggonei 4:b38a9b0501dc 263 }
oggonei 4:b38a9b0501dc 264 else if(x==4)
oggonei 4:b38a9b0501dc 265 {
oggonei 4:b38a9b0501dc 266 r=0x18;
oggonei 4:b38a9b0501dc 267 r2=0xC;
oggonei 4:b38a9b0501dc 268 }
oggonei 4:b38a9b0501dc 269 else if(x==5)
oggonei 4:b38a9b0501dc 270 {
oggonei 4:b38a9b0501dc 271 r=0xC;
oggonei 4:b38a9b0501dc 272 r2=0x6;
oggonei 4:b38a9b0501dc 273 }
oggonei 4:b38a9b0501dc 274 else if(x==6)
oggonei 4:b38a9b0501dc 275 {
oggonei 4:b38a9b0501dc 276 r=0x6;
oggonei 4:b38a9b0501dc 277 r2=0x3;
oggonei 4:b38a9b0501dc 278 }
oggonei 4:b38a9b0501dc 279 else if(x==7)
oggonei 4:b38a9b0501dc 280 {
oggonei 4:b38a9b0501dc 281 r=0x03;
oggonei 4:b38a9b0501dc 282 r2=0x1;
oggonei 4:b38a9b0501dc 283 }
oggonei 4:b38a9b0501dc 284 else if(x==8)
oggonei 4:b38a9b0501dc 285 r=0x01;
oggonei 4:b38a9b0501dc 286 {
oggonei 4:b38a9b0501dc 287 for(j=0;j<=7;j++)
oggonei 4:b38a9b0501dc 288 {
oggonei 4:b38a9b0501dc 289 sendSPI(0x0+j,r2);
oggonei 4:b38a9b0501dc 290 sendSPI(0x0+(j+1),r);
oggonei 4:b38a9b0501dc 291 wait_ms(200);
oggonei 4:b38a9b0501dc 292 sendSPI(0x0+j,0x00);
oggonei 4:b38a9b0501dc 293 sendSPI(0x0+(j+1),0x00);
oggonei 4:b38a9b0501dc 294 wait_us(10);
oggonei 4:b38a9b0501dc 295 }
oggonei 4:b38a9b0501dc 296 sendSPI(0x07,r2);
oggonei 4:b38a9b0501dc 297 sendSPI(0x08,r);
oggonei 4:b38a9b0501dc 298 }
oggonei 4:b38a9b0501dc 299 };
oggonei 4:b38a9b0501dc 300
oggonei 4:b38a9b0501dc 301 void borrar()
oggonei 4:b38a9b0501dc 302 {
oggonei 4:b38a9b0501dc 303 int i;
oggonei 4:b38a9b0501dc 304 for(i=0;i<=8;i++)
oggonei 4:b38a9b0501dc 305 {
oggonei 4:b38a9b0501dc 306 sendSPI(0x0+i,0x00);
oggonei 4:b38a9b0501dc 307 }
oggonei 4:b38a9b0501dc 308 };
fabeltranm 0:61199d9d0aed 309
fabeltranm 0:61199d9d0aed 310
fabeltranm 0:61199d9d0aed 311 int main() {
oggonei 4:b38a9b0501dc 312 sendSPI(0x09,0); //no decodificacion
oggonei 4:b38a9b0501dc 313 sendSPI(0x0A,0x0); //intensidad
oggonei 4:b38a9b0501dc 314 sendSPI(0x0B,0x07); //usa 7 leds
oggonei 4:b38a9b0501dc 315 sendSPI(0x0C,1); //no apaga
oggonei 4:b38a9b0501dc 316 sendSPI(0x0F,0); //operacion normal
oggonei 4:b38a9b0501dc 317
oggonei 4:b38a9b0501dc 318 int x=5,y=6; // enviar ficha y columna
fabeltranm 0:61199d9d0aed 319
oggonei 4:b38a9b0501dc 320 if (x==1) //cuadro
oggonei 4:b38a9b0501dc 321 {
oggonei 4:b38a9b0501dc 322 borrar();
oggonei 4:b38a9b0501dc 323 int r=enviarficha(x,y);
oggonei 4:b38a9b0501dc 324 cuadro(r);
oggonei 4:b38a9b0501dc 325 }
oggonei 4:b38a9b0501dc 326 else if (x==2) //linea
oggonei 4:b38a9b0501dc 327 {
oggonei 4:b38a9b0501dc 328 borrar();
oggonei 4:b38a9b0501dc 329 int r=enviarficha(x,y);
oggonei 4:b38a9b0501dc 330 linea(r);
oggonei 4:b38a9b0501dc 331 }
oggonei 4:b38a9b0501dc 332 else if (x==3) //l
oggonei 4:b38a9b0501dc 333 {
oggonei 4:b38a9b0501dc 334 borrar();
oggonei 4:b38a9b0501dc 335 int r=enviarficha(x,y);
oggonei 4:b38a9b0501dc 336 ele(r);
oggonei 4:b38a9b0501dc 337 }
oggonei 4:b38a9b0501dc 338 else if(x==4) //t
oggonei 4:b38a9b0501dc 339 {
oggonei 4:b38a9b0501dc 340 borrar();
oggonei 4:b38a9b0501dc 341 int r=enviarficha(x,y);
oggonei 4:b38a9b0501dc 342 te(r);
oggonei 4:b38a9b0501dc 343 }
oggonei 4:b38a9b0501dc 344 else if(x==5) //s
oggonei 4:b38a9b0501dc 345 {
oggonei 4:b38a9b0501dc 346 borrar();
oggonei 4:b38a9b0501dc 347 int r=enviarficha(x,y);
oggonei 4:b38a9b0501dc 348 ese(r);
oggonei 4:b38a9b0501dc 349 }
fabeltranm 0:61199d9d0aed 350 }
fabeltranm 0:61199d9d0aed 351