cualquier cosa

Dependencies:   mbed

Fork of 00_LAB_matrix8x8_SPI by ferney alberto beltran molina

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