codigo incompleto picolo

Dependencies:   mbed

Revision:
1:57436dbe2bf7
Parent:
0:d1c031b9a2c7
--- a/main.cpp	Tue Mar 13 22:58:02 2018 +0000
+++ b/main.cpp	Wed Mar 14 02:53:04 2018 +0000
@@ -1,10 +1,17 @@
 #include "mbed.h"
 #define MEM_SIZE 5000
-#define MEM_TYPE uint8_t
+#define MEM_TYPE uint32_t
 #define MAXPOS 50       // en milimetros
 #define SS_TIME 100     // en microsegundos
 #define POSDRAW 10   
 #define periodo 20
+#define CM_EJECUTAR 0xff
+#define CM_GUARDAR 0xfe
+#define CM_VERTEX2D 0xfd
+#define CM_DRAW 0xfc
+#define CM_NODRAW 0xfb
+#define CM_STOP 0xfa
+#define CM_END 0xf0
 
 MEM_TYPE arreglo2[MEM_SIZE];
 Serial pc(USBTX, USBRX); 
@@ -13,16 +20,43 @@
 int mem_tail = 0;
 uint8_t full = 0;
 char b;
+MEM_TYPE comando,px,py,condicionf;
 
 
-void comando();
 
 int coord2us(float coord);
 void draw();
 void nodraw();
 void vertex2d(float x, float y);
- 
- 
+///////////////////////////////////////////////////////
+void ejecutar(){
+    pc.printf("se esta ejecutando el dibujo...");    
+    for(i=0;i<mem_head-1;i++)
+    {   
+        if (arreglo2[i]==CM_VERTEX2D)//FD F0
+        {
+            i++;
+            px=arreglo2[i]
+            
+        }
+    }
+
+}
+/////////////////////////////////////////////////////////////
+void guardar(){
+    pc.printf("se inicia el comado de guardar..");    
+    mem_head=0;
+            do
+            {
+                pc.printf("entro while llenar\n\r");
+                arreglo2[mem_head]=pc.getc();
+                b=arreglo2[mem_head];
+                //pc.printf("posicion %i %c",mem_head,arreglo2[mem_head]);
+                mem_head++;  
+            }
+            while(b!=CM_STOP);
+    
+ }
  
 int main() {
      // configuracion de  periodo
@@ -34,10 +68,15 @@
     motor_z.pulsewidth_us(725);
     int posx=0;
     int posy=0;
-    pc.attach(&comando);
-    while(1) 
+    char caracter;
+  while(1)
     {
-       
+        caracter=pc.getc();
+        switch (caracter) {
+            case  CM_EJECUTAR: ejecutar(); break;
+            case  CM_GUARDAR: guardar(); break;
+            default: pc.printf("error de comando\r\n");break ;      
+        }
     }
 }
 
@@ -70,30 +109,3 @@
     wait_ms(SS_TIME);
  
 }
-void comando ()
-{
-    //MEM_TYPE caracter;
-    MEM_TYPE arreglo[4];
-    MEM_TYPE caracter;
-    for (i=0;i<=3;i++)
-    {
-        arreglo[i]=pc.getc();
-    }
-    caracter=arreglo[0]&&arreglo[1]&&arreglo[2]&&arreglo[3];
-    switch (caracter)
-    {
-        case 'F' && 'E' && 'F' && '0' :
-            pc.printf("entro en ff\n\r");
-            //b=pc.getc();
-            while(b==!'A')
-            {
-                pc.printf("entro while llenar\n\r");
-                arreglo2[mem_head]=pc.getc();
-                b=arreglo2[mem_head];
-                pc.printf("posicion 1 %f",arreglo2[mem_head]);
-                mem_head++;  
-            }
-        break;
-    }
-    
-}