Andres Guio / Mbed 2 deprecated Proyecto

Dependencies:   mbed

Committer:
DANIELOM1916
Date:
Tue Mar 13 22:47:00 2018 +0000
Revision:
0:cc4ffe9bb764
PICCOLO

Who changed what in which revision?

UserRevisionLine numberNew contents of line
DANIELOM1916 0:cc4ffe9bb764 1 #include "mbed.h"
DANIELOM1916 0:cc4ffe9bb764 2 #include "draw.h"
DANIELOM1916 0:cc4ffe9bb764 3
DANIELOM1916 0:cc4ffe9bb764 4 #define CM_EJECUTAR 0xff // FF COMO EJECUTAR
DANIELOM1916 0:cc4ffe9bb764 5 #define CM_GUARDAR 0xfe // FE COMO GUARDAR
DANIELOM1916 0:cc4ffe9bb764 6 #define CM_VERTEX2D 0xfd // FD COMO VERTEX
DANIELOM1916 0:cc4ffe9bb764 7 #define CM_DRAW 0xfc // FC COMO DIBUJO
DANIELOM1916 0:cc4ffe9bb764 8 #define CM_NODRAW 0xfb // FB COMO NO DIBUJO
DANIELOM1916 0:cc4ffe9bb764 9 #define CM_STOP 0xfa // FA COMO PARADA
DANIELOM1916 0:cc4ffe9bb764 10 #define CM_END 0xf0 // F0 COMO FINALIZAR LINEA
DANIELOM1916 0:cc4ffe9bb764 11
DANIELOM1916 0:cc4ffe9bb764 12 #define MEM_SIZE 10
DANIELOM1916 0:cc4ffe9bb764 13 #define MEM_TYPE uint32_t
DANIELOM1916 0:cc4ffe9bb764 14
DANIELOM1916 0:cc4ffe9bb764 15
DANIELOM1916 0:cc4ffe9bb764 16 int mem_head = 0;
DANIELOM1916 0:cc4ffe9bb764 17 int mem_tail = 0;
DANIELOM1916 0:cc4ffe9bb764 18 uint8_t full = 0;
DANIELOM1916 0:cc4ffe9bb764 19
DANIELOM1916 0:cc4ffe9bb764 20 Serial command(USBTX, USBRX); // configurar comando serial
DANIELOM1916 0:cc4ffe9bb764 21 MEM_TYPE buffer[MEM_SIZE];
DANIELOM1916 0:cc4ffe9bb764 22
DANIELOM1916 0:cc4ffe9bb764 23
DANIELOM1916 0:cc4ffe9bb764 24 void ejecutar(){ // subprograma ejecutar
DANIELOM1916 0:cc4ffe9bb764 25 command.printf("se esta ejecutando el dibujo...");
DANIELOM1916 0:cc4ffe9bb764 26 uint32_t mem_free();
DANIELOM1916 0:cc4ffe9bb764 27
DANIELOM1916 0:cc4ffe9bb764 28 while (command.getc() != CM_END)
DANIELOM1916 0:cc4ffe9bb764 29 {
DANIELOM1916 0:cc4ffe9bb764 30 void initdraw(); // posicion inicio de dibujo
DANIELOM1916 0:cc4ffe9bb764 31 void memory(); //revisar memoria
DANIELOM1916 0:cc4ffe9bb764 32 void dinamic (); //memoria dinamica
DANIELOM1916 0:cc4ffe9bb764 33 uint8_t mem_get (); //leer
DANIELOM1916 0:cc4ffe9bb764 34
DANIELOM1916 0:cc4ffe9bb764 35 switch (command.getc())
DANIELOM1916 0:cc4ffe9bb764 36 {
DANIELOM1916 0:cc4ffe9bb764 37 case CM_VERTEX2D:
DANIELOM1916 0:cc4ffe9bb764 38
DANIELOM1916 0:cc4ffe9bb764 39 for (int i=0; i<4; i++){
DANIELOM1916 0:cc4ffe9bb764 40 void vertex2d(uint8_t x, uint8_t y);
DANIELOM1916 0:cc4ffe9bb764 41 }
DANIELOM1916 0:cc4ffe9bb764 42 break;
DANIELOM1916 0:cc4ffe9bb764 43 case CM_DRAW:
DANIELOM1916 0:cc4ffe9bb764 44 void draw ();
DANIELOM1916 0:cc4ffe9bb764 45 break;
DANIELOM1916 0:cc4ffe9bb764 46 case CM_NODRAW:
DANIELOM1916 0:cc4ffe9bb764 47 void nodraw ();
DANIELOM1916 0:cc4ffe9bb764 48 break;
DANIELOM1916 0:cc4ffe9bb764 49 default:
DANIELOM1916 0:cc4ffe9bb764 50 command.printf("error de comando");
DANIELOM1916 0:cc4ffe9bb764 51 break ;
DANIELOM1916 0:cc4ffe9bb764 52 }
DANIELOM1916 0:cc4ffe9bb764 53 }
DANIELOM1916 0:cc4ffe9bb764 54 }
DANIELOM1916 0:cc4ffe9bb764 55
DANIELOM1916 0:cc4ffe9bb764 56
DANIELOM1916 0:cc4ffe9bb764 57 void guardar(){ // subprograma guardar
DANIELOM1916 0:cc4ffe9bb764 58 command.printf("se inicia el comando de guardar..");
DANIELOM1916 0:cc4ffe9bb764 59 uint32_t mem_free();
DANIELOM1916 0:cc4ffe9bb764 60 while (command.getc() != CM_END)
DANIELOM1916 0:cc4ffe9bb764 61 {
DANIELOM1916 0:cc4ffe9bb764 62 void initdraw(); //posicion incial de dibujo
DANIELOM1916 0:cc4ffe9bb764 63 void memory();
DANIELOM1916 0:cc4ffe9bb764 64 void dinamic ();
DANIELOM1916 0:cc4ffe9bb764 65 uint8_t mem_put(); //escribir
DANIELOM1916 0:cc4ffe9bb764 66
DANIELOM1916 0:cc4ffe9bb764 67 }
DANIELOM1916 0:cc4ffe9bb764 68 }
DANIELOM1916 0:cc4ffe9bb764 69
DANIELOM1916 0:cc4ffe9bb764 70 void parada (){ //subprograma de parada
DANIELOM1916 0:cc4ffe9bb764 71 command.printf("finalizando programa..");
DANIELOM1916 0:cc4ffe9bb764 72 uint32_t mem_free();
DANIELOM1916 0:cc4ffe9bb764 73 void nodraw();
DANIELOM1916 0:cc4ffe9bb764 74 void home();
DANIELOM1916 0:cc4ffe9bb764 75 }
DANIELOM1916 0:cc4ffe9bb764 76
DANIELOM1916 0:cc4ffe9bb764 77
DANIELOM1916 0:cc4ffe9bb764 78 void init_serial()
DANIELOM1916 0:cc4ffe9bb764 79 {
DANIELOM1916 0:cc4ffe9bb764 80 command.baud(9600); //configuracion velocidad de transmision
DANIELOM1916 0:cc4ffe9bb764 81 }
DANIELOM1916 0:cc4ffe9bb764 82
DANIELOM1916 0:cc4ffe9bb764 83 int main() { // programa para reconocer efecutar o guardar
DANIELOM1916 0:cc4ffe9bb764 84 init_servo();
DANIELOM1916 0:cc4ffe9bb764 85 init_serial();
DANIELOM1916 0:cc4ffe9bb764 86 home();
DANIELOM1916 0:cc4ffe9bb764 87 char read_cc;
DANIELOM1916 0:cc4ffe9bb764 88 while(1)
DANIELOM1916 0:cc4ffe9bb764 89 {
DANIELOM1916 0:cc4ffe9bb764 90 switch (read_cc) {
DANIELOM1916 0:cc4ffe9bb764 91 case CM_EJECUTAR: ejecutar(); break;
DANIELOM1916 0:cc4ffe9bb764 92 case CM_GUARDAR: guardar(); break;
DANIELOM1916 0:cc4ffe9bb764 93 case CM_STOP: parada (); break;
DANIELOM1916 0:cc4ffe9bb764 94 default: command.printf("error de comando");break ;
DANIELOM1916 0:cc4ffe9bb764 95 }
DANIELOM1916 0:cc4ffe9bb764 96 }
DANIELOM1916 0:cc4ffe9bb764 97 }
DANIELOM1916 0:cc4ffe9bb764 98
DANIELOM1916 0:cc4ffe9bb764 99 uint32_t mem_free() //memoria libre
DANIELOM1916 0:cc4ffe9bb764 100 {
DANIELOM1916 0:cc4ffe9bb764 101 mem_head=0;
DANIELOM1916 0:cc4ffe9bb764 102 full=0;
DANIELOM1916 0:cc4ffe9bb764 103 }
DANIELOM1916 0:cc4ffe9bb764 104
DANIELOM1916 0:cc4ffe9bb764 105 uint8_t mem_put(MEM_TYPE data) //Escribir en espacio de memoria
DANIELOM1916 0:cc4ffe9bb764 106 {
DANIELOM1916 0:cc4ffe9bb764 107
DANIELOM1916 0:cc4ffe9bb764 108 if (full)
DANIELOM1916 0:cc4ffe9bb764 109 return 1;
DANIELOM1916 0:cc4ffe9bb764 110 buffer[mem_head] = data;
DANIELOM1916 0:cc4ffe9bb764 111 mem_head += 1;
DANIELOM1916 0:cc4ffe9bb764 112 if (mem_head == MEM_SIZE)
DANIELOM1916 0:cc4ffe9bb764 113 full =1;
DANIELOM1916 0:cc4ffe9bb764 114 return 0;
DANIELOM1916 0:cc4ffe9bb764 115 }
DANIELOM1916 0:cc4ffe9bb764 116
DANIELOM1916 0:cc4ffe9bb764 117 uint8_t mem_get(MEM_TYPE* data) // Leer espacio de memoria
DANIELOM1916 0:cc4ffe9bb764 118 {
DANIELOM1916 0:cc4ffe9bb764 119 if (mem_head == 0)
DANIELOM1916 0:cc4ffe9bb764 120 return 1;
DANIELOM1916 0:cc4ffe9bb764 121 if (mem_head == mem_tail)
DANIELOM1916 0:cc4ffe9bb764 122 return 1;
DANIELOM1916 0:cc4ffe9bb764 123
DANIELOM1916 0:cc4ffe9bb764 124
DANIELOM1916 0:cc4ffe9bb764 125 *data = buffer[mem_tail];
DANIELOM1916 0:cc4ffe9bb764 126 mem_tail += 1;
DANIELOM1916 0:cc4ffe9bb764 127
DANIELOM1916 0:cc4ffe9bb764 128 return 0;
DANIELOM1916 0:cc4ffe9bb764 129 }
DANIELOM1916 0:cc4ffe9bb764 130
DANIELOM1916 0:cc4ffe9bb764 131
DANIELOM1916 0:cc4ffe9bb764 132 void dinamic () // memoria dinamica de 32 bits
DANIELOM1916 0:cc4ffe9bb764 133 {
DANIELOM1916 0:cc4ffe9bb764 134 int temp = command.getc();
DANIELOM1916 0:cc4ffe9bb764 135
DANIELOM1916 0:cc4ffe9bb764 136 temp = temp<<8 + command.getc();
DANIELOM1916 0:cc4ffe9bb764 137 temp = temp<<8 + command.getc();
DANIELOM1916 0:cc4ffe9bb764 138 temp = temp<<8 + command.getc();
DANIELOM1916 0:cc4ffe9bb764 139 temp = temp<<8 + command.getc();
DANIELOM1916 0:cc4ffe9bb764 140 }
DANIELOM1916 0:cc4ffe9bb764 141
DANIELOM1916 0:cc4ffe9bb764 142 void memory () // memoria para obtener el dato
DANIELOM1916 0:cc4ffe9bb764 143 {
DANIELOM1916 0:cc4ffe9bb764 144 mem_put(command.getc());
DANIELOM1916 0:cc4ffe9bb764 145 mem_put(command.getc());
DANIELOM1916 0:cc4ffe9bb764 146 mem_put(command.getc());
DANIELOM1916 0:cc4ffe9bb764 147 mem_put(command.getc());
DANIELOM1916 0:cc4ffe9bb764 148 MEM_TYPE val;
DANIELOM1916 0:cc4ffe9bb764 149 mem_get(&val);
DANIELOM1916 0:cc4ffe9bb764 150 command.putc(val);
DANIELOM1916 0:cc4ffe9bb764 151 }
DANIELOM1916 0:cc4ffe9bb764 152