cualquier cosa

Dependencies:   mbed

Fork of 00_LAB_matrix8x8_SPI by ferney alberto beltran molina

Revision:
7:315c0b5f9425
Parent:
5:377b23953ba1
diff -r 377b23953ba1 -r 315c0b5f9425 main.cpp
--- a/main.cpp	Thu Sep 06 14:22:35 2018 +0000
+++ b/main.cpp	Fri Sep 07 12:59:13 2018 +0000
@@ -1,5 +1,6 @@
 #include "mbed.h"
 
+
 SPI deviceM(PB_5, PB_4, PB_3);
 DigitalOut ssel (PB_9);
 Serial command(USBTX,USBRX);
@@ -9,37 +10,6 @@
 #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};
-
-int enviarficha(int x,int y)
-{
-    int k=y;
-    
-    if(x==1) // cuadrado
-        {
-        return k; 
-        }
-    else if (x==2) //linea
-        {
-        return k;
-        }
-    else if (x==3) //ele
-        {
-        return k;
-        }
-    else if (x==4) //te
-        {
-        return k;
-        }
-    else if (x==5) //ese
-        {
-        return k;
-        }         
-    else
-    return 1;
-}
  
 void sendSPI(uint8_t d1, uint8_t d2)
 {
@@ -61,75 +31,62 @@
 
 void cuadro(int x,int y)
 {
-    int j,r;
-
-    if (x==1)
-    r=0xC0;
-    else if(x==2)
-    r=0x60;
-    else if(x==3)
-    r=0x30;
-    else if(x==4)
-    r=0x18;
-    else if(x==5)
-    r=0xC;
-    else if(x==6)
-    r=0x06;
-    else if(x==7)
-    r=0x03;
-    else if(x==8)
-    r=0x01;
+    int j;
+    int cu[8]={0xC0,0x60,0x30,0x18,0xc,0x6,0x3,0x1};
+    switch(y)
     {
-         for(j=0;j<=7;j++)
-             {
-                sendSPI(0x0+j,r);
-                sendSPI(0x0+(j+1),r);
-                wait_ms(200);
-                sendSPI(0x0+j,0x00);
-                sendSPI(0x0+(j+1),0x00);
-                wait_us(10); 
-            } 
-                sendSPI(0x07,r);
-                sendSPI(0x08,r);  
+         case 1: case1:
+                for(j=0;j<=7;j++)
+                {
+                    sendSPI(0x0+j,cu[x-1]);
+                    sendSPI(0x0+(j+1),cu[x-1]);
+                    wait_ms(200);
+                    sendSPI(0x0+j,0x00);
+                    sendSPI(0x0+(j+1),0x00);
+                    wait_us(10); 
+                } 
+                sendSPI(0x07,cu[x-1]);
+                sendSPI(0x08,cu[x-1]);  
+                break;
+        case 2: goto case1;
+        case 3: goto case1;
+        case 4: goto case1;
     }                
 };
 
 void linea(int x,int y)
 {
-    int j,r=y;
+    int j;
     int lin0[8]={0x80,0x40,0x20,0x10,0x8,0x4,0x2,0x1};
-    int lin90[8]={0xe0,0x70,0x38,0x1c,0x56,0x6f,0x6f,0x6f};
+    int lin90[8]={0b11100000,0b01110000,0b00111000,0b00011100,0b00001110,0b00000111,0b00000111,0b00000111};
     {
-    switch (r){
-        case 1:  for(j=0;j<=6;j++)
+    switch (y){
+        case 1:  case1: for(j=0;j<=6;j++)
              {
-                sendSPI(0x0+j,lin0[x]);
-                sendSPI(0x0+(j+1),lin0[x]);
-                sendSPI(0x0+(j+2),lin0[x]);
+                sendSPI(0x0+j,lin0[x-1]);
+                sendSPI(0x0+(j+1),lin0[x-1]);
+                sendSPI(0x0+(j+2),lin0[x-1]);
                 wait_ms(200);
                 sendSPI(0x0+j,0x00);
                 sendSPI(0x0+(j+1),0x00);
                 sendSPI(0x0+(j+2),0x00);
                 wait_us(10); 
             } 
-                sendSPI(0x06,lin0[x]);
-                sendSPI(0x07,lin0[x]);
-                sendSPI(0x08,lin0[x]);  
+                sendSPI(0x06,lin0[x-1]);
+                sendSPI(0x07,lin0[x-1]);
+                sendSPI(0x08,lin0[x-1]);  
                 break;
-        case 2:
-                for(j=0;j<=6;j++)
+        case 2: case2:   for(j=0;j<=7;j++)
              {
-                sendSPI(0x0+j,lin90[x]);
+                sendSPI(0x0+j,lin90[x-1]);
                 wait_ms(200);
                 sendSPI(0x0+j,0x00);
                 wait_us(10); 
             } 
-                sendSPI(0x06,lin90[x]);
-                sendSPI(0x07,lin90[x]);
-                sendSPI(0x08,lin90[x]);  
+                sendSPI(0x08,lin90[x-1]);  
                 break;           
-        //case 3: ele(columna,grados); break;
-        //case 4: te(columna,grados); break;    
+        case 3:   goto case1;
+        case 4:   goto case2;
     }
         
  }                
@@ -137,174 +94,195 @@
 
 void ele(int x,int y)
 {
-    int j,r,r2;
-    if (x==1)
-    {
-    r=0xC0;
-    r2=0x80;
-    }
-    else if(x==2)
-    {
-    r=0x60;
-    r2=0x40;
-    }
-    else if(x==3)
-    {
-    r=0x30;
-    r2=0x20;
-    }
-    else if(x==4)
-    {
-    r=0x18;
-    r2=0x10;
-    }
-    else if(x==5)
+    int j;
+    int ele10[8]={0xc0,0x60,0x30,0x18,0xc,0x06,0x03,0x01};
+    int ele20[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
+    int ele190[8]={0b00100000,0b00010000,0b00001000,0b00000100,0b00000010,0b00000001,0x00,0x00};
+    int ele290[8]={0b11100000,0b01110000,0b00111000,0b00011100,0b00001110,0b00000111,0b00000011,0b00000001};
+    int ele1180[8]={0b11000000,0b01100000,0b00110000,0b00011000,0b00001100,0b00000110,0b00000011,0b00000001};
+    int ele2180[8]={0b01000000,0b00100000,0b00010000,0b00001000,0b00000100,0b00000010,0b00000001,0b00000000};
+    int ele1270[8]={0b11100000,0b01110000,0b00111000,0b00011100,0b00001110,0b00000111,0b00000011,0b00000001};
+    int ele2270[8]={0b10000000,0b01000000,0b00100000,0b00010000,0b00001000,0b00000100,0b00000010,0b00000001};
+    switch(y)
     {
-    r=0xC;
-    r2=0x08;
-    }
-    else if(x==6)
-    {
-    r=0x06;
-    r2=0x04;
-    }
-    else if(x==7)
-    {
-    r=0x03;
-    r2=0x02;
-    }
-    else if(x==8)
-    {
-    r=0x01;
-    r2=0x01;
-    }
-    {
-         for(j=0;j<=6;j++)
+         case 1:
+                for(j=0;j<=6;j++)
+                {
+                sendSPI(0x0+j,ele20[x-1]);
+                sendSPI(0x0+(j+1),ele20[x-1]);
+                sendSPI(0x0+(j+2),ele10[x-1]);
+                wait_ms(200);
+                sendSPI(0x0+j,0x00);
+                sendSPI(0x0+(j+1),0x00);
+                sendSPI(0x0+(j+2),0x00);
+                wait_us(10); 
+                } 
+                sendSPI(0x06,ele20[x-1]);
+                sendSPI(0x07,ele20[x-1]);
+                sendSPI(0x08,ele10[x-1]);  
+                break;
+         case 2:
+                for(j=0;j<=6;j++)
+                {
+                sendSPI(0x0+j,ele190[x-1]);
+                sendSPI(0x0+(j+1),ele290[x-1]);
+                wait_ms(200);
+                sendSPI(0x0+j,0x00);
+                sendSPI(0x0+(j+1),0x00);
+                wait_us(10); 
+                } 
+                sendSPI(0x07,ele190[x-1]);
+                sendSPI(0x08,ele290[x-1]);  
+                break;
+         case 3:
+                for(j=0;j<=6;j++)
+                {
+                sendSPI(0x0+j,ele1180[x-1]);
+                sendSPI(0x0+(j+1),ele2180[x-1]);
+                sendSPI(0x0+(j+2),ele2180[x-1]);
+                wait_ms(200);
+                sendSPI(0x0+j,0x00);
+                sendSPI(0x0+(j+1),0x00);
+                sendSPI(0x0+(j+2),0x00);
+                wait_us(10); 
+                } 
+                sendSPI(0x06,ele1180[x-1]);
+                sendSPI(0x07,ele2180[x-1]);
+                sendSPI(0x08,ele2180[x-1]);  
+                break;
+         case 4:
+                for(j=0;j<=6;j++)
+                {
+                sendSPI(0x0+j,ele1270[x-1]);
+                sendSPI(0x0+(j+1),ele2270[x-1]);
+                wait_ms(200);
+                sendSPI(0x0+j,0x00);
+                sendSPI(0x0+(j+1),0x00);
+                wait_us(10); 
+                } 
+                sendSPI(0x07,ele1270[x-1]);
+                sendSPI(0x08,ele2270[x-1]);  
+                break;
+    }                
+};
+
+void te(int x,int y)
+{
+    int te10[8]={0x40,0x20,0x10,0x8,0x4,0x2,0x1,0x01};
+    int te20[8]={0xe0,0x70,0x38,0x1c,0xe,0x7,0x03,0x01};
+    int te190[8]={0b10000000,0b01000000,0b00100000,0b00010000,0b00001000,0b00000100,0b00000010,0b00000001};
+    int te290[8]={0b11000000,0b01100000,0b00110000,0b00011000,0b00001100,0b00000110,0b00000011,0b00000001};
+    int te1180[8]={0b11100000,0b01110000,0b00111000,0b00011100,0b00001110,0b00000111,0b00000011,0b00000001};
+    int te2180[8]={0b01000000,0b00100000,0b00010000,0b00001000,0b00000100,0b00000010,0b00000001,0b00000000};
+    int te1270[8]={0b01000000,0b00100000,0b00010000,0b00001000,0b00000100,0b00000010,0b00000001,0b00000000};
+    int te2270[8]={0b11000000,0b01100000,0b00110000,0b00011000,0b00001100,0b00000110,0b00000011,0b00000001};
+    int j;
+    
+    switch(y)
+        {
+         case 1:
+            for(j=0;j<=7;j++)
              {
-                sendSPI(0x0+j,r2);
-                sendSPI(0x0+(j+1),r2);
-                sendSPI(0x0+(j+2),r);
+                sendSPI(0x0+j,te10[x-1]);
+                sendSPI(0x0+(j+1),te20[x-1]);
+                wait_ms(200);
+                sendSPI(0x0+j,0x00);
+                sendSPI(0x0+(j+1),0x00);
+                wait_us(10); 
+            } 
+                sendSPI(0x07,te10[x-1]);
+                sendSPI(0x08,te20[x-1]); 
+                break; 
+         case 2:
+            for(j=0;j<=6;j++)
+             {
+                sendSPI(0x0+j,te190[x-1]);
+                sendSPI(0x0+(j+1),te290[x-1]);
+                sendSPI(0x0+(j+2),te190[x-1]);
                 wait_ms(200);
                 sendSPI(0x0+j,0x00);
                 sendSPI(0x0+(j+1),0x00);
                 sendSPI(0x0+(j+2),0x00);
                 wait_us(10); 
             } 
-                sendSPI(0x06,r2);
-                sendSPI(0x07,r2);
-                sendSPI(0x08,r);  
-    }                
+                sendSPI(0x06,te190[x-1]);
+                sendSPI(0x07,te290[x-1]);
+                sendSPI(0x08,te190[x-1]); 
+                break; 
+         case 3:
+            for(j=0;j<=7;j++)
+             {
+                sendSPI(0x0+j,te1180[x-1]);
+                sendSPI(0x0+(j+1),te2180[x-1]);
+                wait_ms(200);
+                sendSPI(0x0+j,0x00);
+                sendSPI(0x0+(j+1),0x00);
+                sendSPI(0x0+(j+2),0x00);
+                wait_us(10); 
+            } 
+                sendSPI(0x07,te1180[x-1]);
+                sendSPI(0x08,te2180[x-1]); 
+                break; 
+         case 4:
+            for(j=0;j<=6;j++)
+             {
+                sendSPI(0x0+j,te1270[x-1]);
+                sendSPI(0x0+(j+1),te2270[x-1]);
+                sendSPI(0x0+(j+2),te1270[x-1]);
+                wait_ms(200);
+                sendSPI(0x0+j,0x00);
+                sendSPI(0x0+(j+1),0x00);
+                sendSPI(0x0+(j+2),0x00);
+                wait_us(10); 
+            } 
+                sendSPI(0x06,te1270[x-1]);
+                sendSPI(0x07,te2270[x-1]);
+                sendSPI(0x08,te1270[x-1]); 
+                break; 
+        }                
 };
 
-void te(int x,int y)
+void ese(int x,int y)
 {
-    int j,r,r2;
-
-    if (x==1)
-    {
-    r=0xE0;
-    r2=0x40;
-    }
-    else if(x==2)
-    {
-    r=0x70;
-    r2=0x20;
-    }
-    else if(x==3)
-    {
-    r=0x38;
-    r2=0x10;
-    }
-    else if(x==4)
+    int ese10[8]={0x60,0x30,0x18,0xc,0x6,0x3,0x1,0x0};
+    int ese20[8]={0xc0,0x60,0x30,0x18,0xc,0x6,0x3,0x01};
+    int ese190[8]={0b10000000,0b01000000,0b00100000,0b00010000,0b00001000,0b00000100,0b00000010,0x01};
+    int ese290[8]={0b11000000,0b01100000,0b00110000,0b00011000,0b00001100,0b00000110,0b00000011,0x01};
+    int ese390[8]={0b01000000,0b00100000,0b00010000,0b00001000,0b00000100,0b00000010,0b00000001,0x00};
+    
+    int j;
+    switch(y)
     {
-    r=0x1C;
-    r2=0x8;
-    }
-    else if(x==5)
-    {
-    r=0xE;
-    r2=0x4;
-    }
-    else if(x==6)
-    {
-    r=0x7;
-    r2=0x2;
-    }
-    else if(x==7)
-    {
-    r=0x03;
-    r2=0x1;
-    }
-    else if(x==8)
-    r=0x01;
-    {
-         for(j=0;j<=7;j++)
-             {
-                sendSPI(0x0+j,r2);
-                sendSPI(0x0+(j+1),r);
+         case 1: case1:
+                for(j=0;j<=6;j++)
+                {
+                sendSPI(0x0+j,ese10[x-1]);
+                sendSPI(0x0+(j+1),ese20[x-1]);
                 wait_ms(200);
                 sendSPI(0x0+j,0x00);
                 sendSPI(0x0+(j+1),0x00);
                 wait_us(10); 
-            } 
-                sendSPI(0x07,r2);
-                sendSPI(0x08,r);  
-    }                
-};
-
-void ese(int x,int y)
-{
-    int j,r,r2;
-
-    if (x==1)
-    {
-    r=0xC0;
-    r2=0x60;
-    }
-    else if(x==2)
-    {
-    r=0x60;
-    r2=0x30;
-    }
-    else if(x==3)
-    {
-    r=0x30;
-    r2=0x18;
-    }
-    else if(x==4)
-    {
-    r=0x18;
-    r2=0xC;
-    }
-    else if(x==5)
-    {
-    r=0xC;
-    r2=0x6;
-    }
-    else if(x==6)
-    {
-    r=0x6;
-    r2=0x3;
-    }
-    else if(x==7)
-    {
-    r=0x03;
-    r2=0x1;
-    }
-    else if(x==8)
-    r=0x01;
-    {
-         for(j=0;j<=7;j++)
-             {
-                sendSPI(0x0+j,r2);
-                sendSPI(0x0+(j+1),r);
+                } 
+                sendSPI(0x07,ese10[x-1]);
+                sendSPI(0x08,ese20[x-1]);
+                break;  
+         case 2: case2:
+                for(j=0;j<=6;j++)
+                {
+                sendSPI(0x0+j,ese190[x-1]);
+                sendSPI(0x0+(j+1),ese290[x-1]);
+                sendSPI(0x0+(j+2),ese390[x-1]);
                 wait_ms(200);
                 sendSPI(0x0+j,0x00);
                 sendSPI(0x0+(j+1),0x00);
                 wait_us(10); 
-            } 
-                sendSPI(0x07,r2);
-                sendSPI(0x08,r);  
+                } 
+                sendSPI(0x06,ese190[x-1]);
+                sendSPI(0x07,ese290[x-1]);
+                sendSPI(0x08,ese390[x-1]);
+                break; 
+        case 3: goto case1;
+        case 4: goto case2;
     }                
 };
 
@@ -317,7 +295,7 @@
     }
 };
 
-void dibujar(char type_fig,char grados, char columna)
+void dibujar(int type_fig,int grados, int columna)
 {
     //borrar();
     
@@ -350,7 +328,7 @@
         
             if(lee1==0x3c && lee2==0x3e)
             {
-            dibujar(tipo_fig,grados,ncolumna);            
+            dibujar(tipo_fig,grados,ncolumna);           
             }        
         }
     }
\ No newline at end of file