Giro en su propio eje Presentado por: Julio Fajardo, Cesar Pacheco, Angel Trujillo, Daniel Vizcaya

Dependencies:   mbed

Fork of 01_Embebidos by Daniel Vizcaya

Committer:
Bethory
Date:
Mon Mar 12 04:21:09 2018 +0000
Revision:
3:3665eb7346e2
Child:
4:8a884a5dd8c8
Ah? vamos

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Bethory 3:3665eb7346e2 1 #include "mbed.h"
Bethory 3:3665eb7346e2 2 #include "draw.h"
Bethory 3:3665eb7346e2 3 #define CM_EJECUTAR 0xFF
Bethory 3:3665eb7346e2 4 #define CM_GUARDAR 0xFE
Bethory 3:3665eb7346e2 5 #define CM_VERTEX2D 0xFD
Bethory 3:3665eb7346e2 6 #define CM_DRAW 0XFC
Bethory 3:3665eb7346e2 7 #define CM_NODRAW 0xFB
Bethory 3:3665eb7346e2 8 #define CM_STOP 0xFA
Bethory 3:3665eb7346e2 9 #define CM_END 0xF0
Bethory 3:3665eb7346e2 10
Bethory 3:3665eb7346e2 11 #define MEM_SIZE 10
Bethory 3:3665eb7346e2 12 #define MEM_TYPE uint32_t //significa que de ahora en más donde diga MEM_TYPE será tipo uint32_t
Bethory 3:3665eb7346e2 13
Bethory 3:3665eb7346e2 14 uint8_t mem_head = 0;
Bethory 3:3665eb7346e2 15 uint8_t mem_tail = 0;
Bethory 3:3665eb7346e2 16 bool full = 0;
Bethory 3:3665eb7346e2 17
Bethory 3:3665eb7346e2 18 MEM_TYPE buffer[MEM_SIZE];
Bethory 3:3665eb7346e2 19 Serial command(USBTX, USBRX);
Bethory 3:3665eb7346e2 20
Bethory 3:3665eb7346e2 21 void mem_free(){ //Estaba como uint32_t no como void
Bethory 3:3665eb7346e2 22 mem_head=0;
Bethory 3:3665eb7346e2 23 full=0;
Bethory 3:3665eb7346e2 24 }
Bethory 3:3665eb7346e2 25
Bethory 3:3665eb7346e2 26 bool mem_put(MEM_TYPE data){ //Escribir
Bethory 3:3665eb7346e2 27 if (full)
Bethory 3:3665eb7346e2 28 return 1;
Bethory 3:3665eb7346e2 29 buffer[mem_head] = data; //carga en dato en el buffer
Bethory 3:3665eb7346e2 30 mem_head += 1;
Bethory 3:3665eb7346e2 31 if (mem_head == MEM_SIZE)
Bethory 3:3665eb7346e2 32 full =1;
Bethory 3:3665eb7346e2 33 return 0;
Bethory 3:3665eb7346e2 34 }
Bethory 3:3665eb7346e2 35
Bethory 3:3665eb7346e2 36 bool mem_get(MEM_TYPE* data){ //Leer
Bethory 3:3665eb7346e2 37 if (mem_head == 0)
Bethory 3:3665eb7346e2 38 return 1;
Bethory 3:3665eb7346e2 39 if (mem_head == mem_tail)
Bethory 3:3665eb7346e2 40 return 1;
Bethory 3:3665eb7346e2 41 *data = buffer[mem_tail];
Bethory 3:3665eb7346e2 42 mem_tail += 1;
Bethory 3:3665eb7346e2 43 return 0;
Bethory 3:3665eb7346e2 44 }
Bethory 3:3665eb7346e2 45
Bethory 3:3665eb7346e2 46 void ejecutar(){
Bethory 3:3665eb7346e2 47 command.printf("se inicia el comando de ejecutar...\n");
Bethory 3:3665eb7346e2 48 /*for(int i=1;i<=MEM_SIZE;i++){
Bethory 3:3665eb7346e2 49 command.printf("%x\n",buffer[i]);
Bethory 3:3665eb7346e2 50 }*/
Bethory 3:3665eb7346e2 51 }
Bethory 3:3665eb7346e2 52
Bethory 3:3665eb7346e2 53 void guardar(){
Bethory 3:3665eb7346e2 54 command.printf("se inicia el comando de guardar...\n");
Bethory 3:3665eb7346e2 55 MEM_TYPE val; //significa que la variable "val" es del tipo uint32_t
Bethory 3:3665eb7346e2 56 char raw_data;
Bethory 3:3665eb7346e2 57
Bethory 3:3665eb7346e2 58 while(1 && !full){
Bethory 3:3665eb7346e2 59 for(int i=1;i<=4;i++){
Bethory 3:3665eb7346e2 60 raw_data=command.getc();
Bethory 3:3665eb7346e2 61 command.printf("%x",raw_data);
Bethory 3:3665eb7346e2 62 if(raw_data==CM_STOP)
Bethory 3:3665eb7346e2 63 return;
Bethory 3:3665eb7346e2 64 if(i==1){
Bethory 3:3665eb7346e2 65 val=raw_data;
Bethory 3:3665eb7346e2 66 }else{
Bethory 3:3665eb7346e2 67
Bethory 3:3665eb7346e2 68 val=val << 8;
Bethory 3:3665eb7346e2 69 val=val|raw_data;
Bethory 3:3665eb7346e2 70 }
Bethory 3:3665eb7346e2 71 command.printf(" %d",i);
Bethory 3:3665eb7346e2 72 command.printf(" %x\n",val);
Bethory 3:3665eb7346e2 73 }
Bethory 3:3665eb7346e2 74 mem_put(val);
Bethory 3:3665eb7346e2 75 }
Bethory 3:3665eb7346e2 76 //mem_get(&val); //&val es la dirección de la variable, no su contenido
Bethory 3:3665eb7346e2 77 //command.putc(val); //manda por puerto serial el contenido de "val" npi para qué
Bethory 3:3665eb7346e2 78 }
Bethory 3:3665eb7346e2 79
Bethory 3:3665eb7346e2 80 int main(){
Bethory 3:3665eb7346e2 81 init_servo();
Bethory 3:3665eb7346e2 82 command.baud(9600);
Bethory 3:3665eb7346e2 83 home(); //llama a no_draw y va a 0,0
Bethory 3:3665eb7346e2 84
Bethory 3:3665eb7346e2 85 char read_cc;
Bethory 3:3665eb7346e2 86 while(1){
Bethory 3:3665eb7346e2 87 read_cc=command.getc();
Bethory 3:3665eb7346e2 88 switch (read_cc){
Bethory 3:3665eb7346e2 89 case CM_EJECUTAR: ejecutar(); break;
Bethory 3:3665eb7346e2 90 case CM_GUARDAR: guardar(); break;
Bethory 3:3665eb7346e2 91 default: command.printf("error de comando \n");break ;
Bethory 3:3665eb7346e2 92 }
Bethory 3:3665eb7346e2 93 }
Bethory 3:3665eb7346e2 94 }
Bethory 3:3665eb7346e2 95 /*
Bethory 3:3665eb7346e2 96 FE FB FD 00 00 F0
Bethory 3:3665eb7346e2 97 FC F0 FD 32 00 F0
Bethory 3:3665eb7346e2 98 FD 32 32 F0 FD 00
Bethory 3:3665eb7346e2 99 32 F0 FD 00 00 F0
Bethory 3:3665eb7346e2 100 FB F0 FA F0 FF
Bethory 3:3665eb7346e2 101
Bethory 3:3665eb7346e2 102 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
Bethory 3:3665eb7346e2 103 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
Bethory 3:3665eb7346e2 104
Bethory 3:3665eb7346e2 105 #define CM_EJECUTAR 0xFF
Bethory 3:3665eb7346e2 106 #define CM_GUARDAR 0xFE
Bethory 3:3665eb7346e2 107 #define CM_VERTEX2D 0xFD
Bethory 3:3665eb7346e2 108 #define CM_DRAW 0XFC
Bethory 3:3665eb7346e2 109 #define CM_NODRAW 0xFB
Bethory 3:3665eb7346e2 110 #define CM_STOP 0xFA
Bethory 3:3665eb7346e2 111 #define CM_END 0xF0
Bethory 3:3665eb7346e2 112 */