cristhian david santos oggonei
/
matriz_max
cualquier cosa
Fork of 00_LAB_matrix8x8_SPI by
Diff: main.cpp
- Revision:
- 5:377b23953ba1
- Parent:
- 4:b38a9b0501dc
- Child:
- 7:315c0b5f9425
--- a/main.cpp Mon Sep 03 00:55:50 2018 +0000 +++ b/main.cpp Thu Sep 06 14:22:35 2018 +0000 @@ -2,6 +2,13 @@ SPI deviceM(PB_5, PB_4, PB_3); DigitalOut ssel (PB_9); +Serial command(USBTX,USBRX); + +#define FIG_C 0x01 +#define FIG_I 0x02 +#define FIG_L 0x03 +#define FIG_T 0x04 +#define FIG_S 0x05 //#define uint8_t unsigned char //uint8_t vcol2[8]={0,0,0,0,0,0,0,0}; @@ -52,7 +59,7 @@ wait(0.5); }; -void cuadro(int x) +void cuadro(int x,int y) { int j,r; @@ -87,45 +94,48 @@ } }; -void linea(int x) +void linea(int x,int y) { - int j,r; - - if (x==1) - r=0x80; - else if(x==2) - r=0x40; - else if(x==3) - r=0x20; - else if(x==4) - r=0x10; - else if(x==5) - r=0x08; - else if(x==6) - r=0x04; - else if(x==7) - r=0x02; - else if(x==8) - r=0x01; + int j,r=y; + int lin0[8]={0x80,0x40,0x20,0x10,0x8,0x4,0x2,0x1}; + int lin90[8]={0xe0,0x70,0x38,0x1c,0x56,0x6f,0x6f,0x6f}; { - for(j=0;j<=6;j++) + switch (r){ + case 1: for(j=0;j<=6;j++) { - sendSPI(0x0+j,r); - sendSPI(0x0+(j+1),r); - sendSPI(0x0+(j+2),r); + sendSPI(0x0+j,lin0[x]); + sendSPI(0x0+(j+1),lin0[x]); + sendSPI(0x0+(j+2),lin0[x]); wait_ms(200); sendSPI(0x0+j,0x00); sendSPI(0x0+(j+1),0x00); sendSPI(0x0+(j+2),0x00); wait_us(10); } - sendSPI(0x06,r); - sendSPI(0x07,r); - sendSPI(0x08,r); - } + sendSPI(0x06,lin0[x]); + sendSPI(0x07,lin0[x]); + sendSPI(0x08,lin0[x]); + break; + case 2: + for(j=0;j<=6;j++) + { + sendSPI(0x0+j,lin90[x]); + wait_ms(200); + sendSPI(0x0+j,0x00); + wait_us(10); + } + sendSPI(0x06,lin90[x]); + sendSPI(0x07,lin90[x]); + sendSPI(0x08,lin90[x]); + break; + //case 3: ele(columna,grados); break; + //case 4: te(columna,grados); break; + } + + } }; -void ele(int x) +void ele(int x,int y) { int j,r,r2; if (x==1) @@ -186,7 +196,7 @@ } }; -void te(int x) +void te(int x,int y) { int j,r,r2; @@ -242,7 +252,7 @@ } }; -void ese(int x) +void ese(int x,int y) { int j,r,r2; @@ -307,6 +317,20 @@ } }; +void dibujar(char type_fig,char grados, char columna) +{ + //borrar(); + + switch (type_fig){ + case FIG_C: cuadro(columna,grados); break; + case FIG_I: linea(columna,grados); break; + case FIG_L: ele(columna,grados); break; + case FIG_T: te(columna,grados); break; + case FIG_S: ese(columna,grados); break; + + }; + +} int main() { sendSPI(0x09,0); //no decodificacion @@ -315,37 +339,18 @@ sendSPI(0x0C,1); //no apaga sendSPI(0x0F,0); //operacion normal - int x=5,y=6; // enviar ficha y columna + int tipo_fig=1,ncolumna=1,grados=1,lee1=0x00,lee2=0x00; // enviar ficha y columna - if (x==1) //cuadro - { - borrar(); - int r=enviarficha(x,y); - cuadro(r); - } - else if (x==2) //linea - { - borrar(); - int r=enviarficha(x,y); - linea(r); - } - else if (x==3) //l - { - borrar(); - int r=enviarficha(x,y); - ele(r); - } - else if(x==4) //t - { - borrar(); - int r=enviarficha(x,y); - te(r); - } - else if(x==5) //s - { - borrar(); - int r=enviarficha(x,y); - ese(r); - } -} - + while(1){ + lee1=command.getc(); + tipo_fig=command.getc(); + grados=command.getc(); + ncolumna=command.getc(); + lee2=command.getc(); + + if(lee1==0x3c && lee2==0x3e) + { + dibujar(tipo_fig,grados,ncolumna); + } + } + } \ No newline at end of file