Giro en su propio eje Presentado por: Julio Fajardo, Cesar Pacheco, Angel Trujillo, Daniel Vizcaya
Fork of 01_Embebidos by
Diff: 01_main.cpp
- Revision:
- 4:8a884a5dd8c8
- Parent:
- 3:3665eb7346e2
- Child:
- 5:8e100835b017
--- a/01_main.cpp Mon Mar 12 04:21:09 2018 +0000 +++ b/01_main.cpp Wed Mar 14 04:57:30 2018 +0000 @@ -6,7 +6,7 @@ #define CM_DRAW 0XFC #define CM_NODRAW 0xFB #define CM_STOP 0xFA -#define CM_END 0xF0 +#define CM_ENTER 0xF0 #define MEM_SIZE 10 #define MEM_TYPE uint32_t //significa que de ahora en más donde diga MEM_TYPE será tipo uint32_t @@ -52,10 +52,81 @@ void guardar(){ command.printf("se inicia el comando de guardar...\n"); - MEM_TYPE val; //significa que la variable "val" es del tipo uint32_t - char raw_data; + uint32_t val; //significa que la variable "val" es del tipo uint32_t + char dato1,dato2; - while(1 && !full){ + dato1=command.getc(); + if(dato1==CM_STOP){ + dato2=command.getc(); + if(dato2==CM_ENTER){ + val=dato1; + return; + } + } + if(dato1==CM_NODRAW|dato1==CM_DRAW){ + dato2=command.getc(); + if(dato2==CM_ENTER){ + val=dato1; + } + } + if(dato1==CM_VERTEX2D){ + dato2=command.getc(); + if(dato2<=0x32){ + val=CM_VERTEX2D; + val=val<<8; + val=val|dato2; + dato2=command.getc(); + if(dato2<=0x32){ + val=val<<8; + val=val|dato2; + dato2=command.getc(); + if(dato2==CM_ENTER){ + val=val<<8; + val=val|CM_ENTER; + } + } + } + } +} + +int main(){ + init_servo(); + command.baud(9600); + home(); //llama a no_draw y va a 0,0 + + char read_cc; + while(1){ + read_cc=command.getc(); + switch (read_cc){ + //case CM_STOP: command.printf("comando no válido en este momento");break; //FA + //case CM_NODRAW: guardar(read_cc);break; //FB + //case CM_DRAW: guardar(read_cc);break; //FC + //case CM_VERTEX2D: command.printf("comando no válido en este momento");break; //FD + case CM_GUARDAR: guardar(); break; //FE + case CM_EJECUTAR: ejecutar(); break; //FF + default: command.printf("Error de comando \n");break; + } + } +} +/* +FE FB FD 00 00 F0 +FC F0 FD 32 00 F0 +FD 32 32 F0 FD 00 +32 F0 FD 00 00 F0 +FB F0 FA F0 FF + +FE F0 FD 54 32 F0 FC F0 FD 32 00 F0 FD 32 32 F0 FD 00 32 F0 FD 00 00 F0 FB F0 FA F0 FF +FE 12 34 12 34 12 34 12 34 12 34 12 34 12 34 12 34 12 34 12 34 12 34 12 34 12 FA FF + +#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 + + while(!full){ for(int i=1;i<=4;i++){ raw_data=command.getc(); command.printf("%x",raw_data); @@ -75,38 +146,5 @@ } //mem_get(&val); //&val es la dirección de la variable, no su contenido //command.putc(val); //manda por puerto serial el contenido de "val" npi para qué -} -int main(){ - init_servo(); - command.baud(9600); - home(); //llama a no_draw y va a 0,0 - - char read_cc; - while(1){ - read_cc=command.getc(); - switch (read_cc){ - case CM_EJECUTAR: ejecutar(); break; - case CM_GUARDAR: guardar(); break; - default: command.printf("error de comando \n");break ; - } - } -} -/* -FE FB FD 00 00 F0 -FC F0 FD 32 00 F0 -FD 32 32 F0 FD 00 -32 F0 FD 00 00 F0 -FB F0 FA F0 FF - -FE FB FD 54 32 F0 FC F0 FD 32 00 F0 FD 32 32 F0 FD 00 32 F0 FD 00 00 F0 FB F0 FA F0 FF -FE 12 34 12 34 12 34 12 34 12 34 12 34 12 34 12 34 12 34 12 34 12 34 12 34 12 FA FF - -#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 */ \ No newline at end of file