sebastian martinez / Mbed 2 deprecated 01-04_Primer_Avance

Dependencies:   mbed

Fork of 01-04EntregaPrimerCorte by ferney alberto beltran molina

Committer:
sebasmartinez
Date:
Fri Sep 07 23:58:14 2018 +0000
Revision:
4:ba51736778e1
Parent:
3:60722da62531
V3

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fabeltranm 0:89b318e49395 1 #include "mbed.h"
fabeltranm 0:89b318e49395 2
fabeltranm 0:89b318e49395 3 #include "main.h"
fabeltranm 0:89b318e49395 4
sebasmartinez 3:60722da62531 5 #define MEM_SIZE 5
sebasmartinez 2:10956b8ceffb 6 #define MEM_TYPE char
sebasmartinez 2:10956b8ceffb 7 MEM_TYPE buffer[MEM_SIZE];
fabeltranm 0:89b318e49395 8
fabeltranm 0:89b318e49395 9
fabeltranm 0:89b318e49395 10 Serial command(USBTX, USBRX);
sebasmartinez 4:ba51736778e1 11 DigitalIn button(USER_BUTTON);
fabeltranm 0:89b318e49395 12
fabeltranm 0:89b318e49395 13
fabeltranm 0:89b318e49395 14 int main() {
fabeltranm 0:89b318e49395 15 init_servo();
fabeltranm 0:89b318e49395 16 init_serial();
fabeltranm 0:89b318e49395 17 debug_m("inicio \n");
sebasmartinez 2:10956b8ceffb 18
sebasmartinez 2:10956b8ceffb 19
fabeltranm 0:89b318e49395 20 uint32_t read_cc;
fabeltranm 0:89b318e49395 21 while(1)
fabeltranm 0:89b318e49395 22 {
fabeltranm 0:89b318e49395 23 read_cc=read_command();
sebasmartinez 2:10956b8ceffb 24 debug_m("Entrando TC...\n");
sebasmartinez 2:10956b8ceffb 25
fabeltranm 0:89b318e49395 26 switch (read_cc) {
sebasmartinez 2:10956b8ceffb 27
sebasmartinez 2:10956b8ceffb 28 case 0x01:
sebasmartinez 4:ba51736778e1 29 debug_m("Tc 1 Iniciado..\n");
sebasmartinez 2:10956b8ceffb 30 moving();
sebasmartinez 4:ba51736778e1 31 debug_m("Tc 1 Finalizado\n");
sebasmartinez 2:10956b8ceffb 32 break;
sebasmartinez 2:10956b8ceffb 33 case 0x02:
sebasmartinez 4:ba51736778e1 34 debug_m("Tc 2 Iniciado.. \n");
sebasmartinez 4:ba51736778e1 35 pares();
sebasmartinez 4:ba51736778e1 36 debug_m("Tc 2 Finalizado\n");
sebasmartinez 2:10956b8ceffb 37 break;
sebasmartinez 4:ba51736778e1 38 default: debug_m("Error de comando. \nSe espera entre 0x01 - 0x08 \n");break ;
fabeltranm 0:89b318e49395 39 }
fabeltranm 0:89b318e49395 40 }
fabeltranm 0:89b318e49395 41 }
fabeltranm 0:89b318e49395 42
fabeltranm 0:89b318e49395 43
fabeltranm 0:89b318e49395 44
fabeltranm 0:89b318e49395 45 uint32_t read_command()
fabeltranm 0:89b318e49395 46 {
fabeltranm 1:526bdd5faa37 47 // retorna los byte recibidos concatenados en un entero,
sebasmartinez 3:60722da62531 48 // Formato | FF | TC | NM | GR | FD
sebasmartinez 3:60722da62531 49 // Datos | Inicio | Tele-comando | Numero Motor | Grados | Cierre
sebasmartinez 2:10956b8ceffb 50 //char intc=command.getc();
sebasmartinez 2:10956b8ceffb 51 buffer[0] = command.getc();
sebasmartinez 4:ba51736778e1 52
sebasmartinez 4:ba51736778e1 53 inicio:
sebasmartinez 4:ba51736778e1 54
sebasmartinez 4:ba51736778e1 55 while(buffer[0] != 0xFF ){
fabeltranm 1:526bdd5faa37 56
sebasmartinez 4:ba51736778e1 57 buffer[0] = command.getc();
sebasmartinez 2:10956b8ceffb 58
sebasmartinez 2:10956b8ceffb 59 debug_m("comando inicio invalido \n");
sebasmartinez 2:10956b8ceffb 60 }
sebasmartinez 2:10956b8ceffb 61
sebasmartinez 4:ba51736778e1 62 printf("inicio encontrado: %c \n", buffer[0] );
sebasmartinez 4:ba51736778e1 63
sebasmartinez 4:ba51736778e1 64 buffer[1] = command.getc();
sebasmartinez 4:ba51736778e1 65 if (buffer[1] != 0xFF && buffer[1] != 0xFD){
sebasmartinez 4:ba51736778e1 66 buffer[2] = command.getc();
sebasmartinez 4:ba51736778e1 67 }else{
sebasmartinez 4:ba51736778e1 68 buffer[0] = buffer[1];
sebasmartinez 4:ba51736778e1 69 goto inicio;
sebasmartinez 4:ba51736778e1 70 }
sebasmartinez 4:ba51736778e1 71 if (buffer[2] != 0xFF && buffer[2] != 0xFD){
sebasmartinez 4:ba51736778e1 72 buffer[3] = command.getc();
sebasmartinez 4:ba51736778e1 73 }else{
sebasmartinez 4:ba51736778e1 74 buffer[0] = buffer[2];
sebasmartinez 4:ba51736778e1 75 goto inicio;
sebasmartinez 4:ba51736778e1 76 }
sebasmartinez 4:ba51736778e1 77 if (buffer[3] != 0xFF && buffer[3] != 0xFD){
sebasmartinez 4:ba51736778e1 78 buffer[4] = command.getc();
sebasmartinez 4:ba51736778e1 79 }else{
sebasmartinez 4:ba51736778e1 80 buffer[0] = buffer[3];
sebasmartinez 4:ba51736778e1 81 goto inicio;
sebasmartinez 4:ba51736778e1 82 }
sebasmartinez 4:ba51736778e1 83 //para que evalue el cierre
sebasmartinez 4:ba51736778e1 84 if (buffer[4] != 0xFF && buffer[4] == 0xFD){
sebasmartinez 4:ba51736778e1 85 debug_m("comando Cierre valido \n");
sebasmartinez 4:ba51736778e1 86 }else{
sebasmartinez 4:ba51736778e1 87 buffer[0] = buffer[4];
sebasmartinez 4:ba51736778e1 88 goto inicio;
sebasmartinez 4:ba51736778e1 89 }
sebasmartinez 4:ba51736778e1 90
sebasmartinez 4:ba51736778e1 91
sebasmartinez 4:ba51736778e1 92
sebasmartinez 2:10956b8ceffb 93 //intc=command.getc();
sebasmartinez 2:10956b8ceffb 94 int tele = buffer[1];
sebasmartinez 3:60722da62531 95 printf("Tele siguente: %c \n", tele );
sebasmartinez 2:10956b8ceffb 96
sebasmartinez 2:10956b8ceffb 97
sebasmartinez 2:10956b8ceffb 98 return tele;
sebasmartinez 2:10956b8ceffb 99
fabeltranm 0:89b318e49395 100 }
fabeltranm 1:526bdd5faa37 101
fabeltranm 1:526bdd5faa37 102
fabeltranm 0:89b318e49395 103 void init_serial()
fabeltranm 0:89b318e49395 104 {
sebasmartinez 2:10956b8ceffb 105 command.baud(9600);
sebasmartinez 2:10956b8ceffb 106 debug_m("Serial 9600 \n");
fabeltranm 0:89b318e49395 107 }
fabeltranm 0:89b318e49395 108
fabeltranm 0:89b318e49395 109
fabeltranm 1:526bdd5faa37 110 void moving(){
fabeltranm 1:526bdd5faa37 111 debug_m("se inicia el comado mover..\n");
fabeltranm 0:89b318e49395 112
sebasmartinez 2:10956b8ceffb 113 char nmotor = buffer[2];
sebasmartinez 2:10956b8ceffb 114 printf("Motor: %c \n", nmotor );
sebasmartinez 2:10956b8ceffb 115 char grados = buffer[3];
sebasmartinez 2:10956b8ceffb 116 printf("Grados: %c \n", grados );
sebasmartinez 4:ba51736778e1 117 //char endc = buffer[4];
sebasmartinez 4:ba51736778e1 118 //printf("Cierre: %c \n", endc );
fabeltranm 1:526bdd5faa37 119 mover_ser(nmotor,grados);
sebasmartinez 2:10956b8ceffb 120
sebasmartinez 2:10956b8ceffb 121 debug_m("fin del comado mover..\n");
fabeltranm 0:89b318e49395 122
fabeltranm 0:89b318e49395 123 }
sebasmartinez 4:ba51736778e1 124 void pares(){
sebasmartinez 4:ba51736778e1 125 debug_m("se inicia el comado pares..\n");
sebasmartinez 4:ba51736778e1 126
sebasmartinez 4:ba51736778e1 127 char par = buffer[2];
sebasmartinez 4:ba51736778e1 128 printf("Par: %c \n", par );
sebasmartinez 4:ba51736778e1 129 char dire = buffer[3];
sebasmartinez 4:ba51736778e1 130 printf("Dir: %c \n", dire );
sebasmartinez 4:ba51736778e1 131 char endcc = buffer[4];
sebasmartinez 4:ba51736778e1 132 printf("Cierre: %c \n", endcc );
sebasmartinez 4:ba51736778e1 133 while(button == 0) {
sebasmartinez 4:ba51736778e1 134 mover_par(par,dire);
sebasmartinez 4:ba51736778e1 135 }
sebasmartinez 4:ba51736778e1 136 centro(par);
sebasmartinez 4:ba51736778e1 137 debug_m("fin del comado pares..\n");
sebasmartinez 4:ba51736778e1 138 }
fabeltranm 0:89b318e49395 139 void debug_m(char *s , ... ){
fabeltranm 0:89b318e49395 140 #if DEBUG
fabeltranm 0:89b318e49395 141 command.printf(s);
fabeltranm 0:89b318e49395 142 #endif
fabeltranm 0:89b318e49395 143 }