Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:22b33429aff5, 2018-11-22 (annotated)
- Committer:
- sammir
- Date:
- Thu Nov 22 01:19:55 2018 +0000
- Revision:
- 0:22b33429aff5
TRABAJO FINAL CUADRUPEDO
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| sammir | 0:22b33429aff5 | 1 | r#include "mbed.h" |
| sammir | 0:22b33429aff5 | 2 | #include "main.h" |
| sammir | 0:22b33429aff5 | 3 | Timer tiempo; |
| sammir | 0:22b33429aff5 | 4 | Serial command(USBTX, USBRX); |
| sammir | 0:22b33429aff5 | 5 | |
| sammir | 0:22b33429aff5 | 6 | DigitalIn entrada (PC_9); |
| sammir | 0:22b33429aff5 | 7 | DigitalOut S0 (PA_9); |
| sammir | 0:22b33429aff5 | 8 | DigitalOut S1 (PA_8); |
| sammir | 0:22b33429aff5 | 9 | DigitalOut S3 (PC_7); |
| sammir | 0:22b33429aff5 | 10 | DigitalOut S2 (PA_10); |
| sammir | 0:22b33429aff5 | 11 | |
| sammir | 0:22b33429aff5 | 12 | int valor; |
| sammir | 0:22b33429aff5 | 13 | int color=0; |
| sammir | 0:22b33429aff5 | 14 | int rojo=0; |
| sammir | 0:22b33429aff5 | 15 | int azul=0; |
| sammir | 0:22b33429aff5 | 16 | int verde=0; |
| sammir | 0:22b33429aff5 | 17 | int Detectar(); |
| sammir | 0:22b33429aff5 | 18 | int tme=0; |
| sammir | 0:22b33429aff5 | 19 | |
| sammir | 0:22b33429aff5 | 20 | int main() { |
| sammir | 0:22b33429aff5 | 21 | |
| sammir | 0:22b33429aff5 | 22 | init_serial(); |
| sammir | 0:22b33429aff5 | 23 | |
| sammir | 0:22b33429aff5 | 24 | |
| sammir | 0:22b33429aff5 | 25 | debug_m("inicio \n"); |
| sammir | 0:22b33429aff5 | 26 | uint32_t read_cc; |
| sammir | 0:22b33429aff5 | 27 | while(1) |
| sammir | 0:22b33429aff5 | 28 | { |
| sammir | 0:22b33429aff5 | 29 | read_cc=read_command(); |
| sammir | 0:22b33429aff5 | 30 | switch (read_cc) { |
| sammir | 0:22b33429aff5 | 31 | case 0x01: moving(); break ; |
| sammir | 0:22b33429aff5 | 32 | case 0x02: moving2();break ; |
| sammir | 0:22b33429aff5 | 33 | case 0x03: sensor();break ; |
| sammir | 0:22b33429aff5 | 34 | case 0x04:moving3();break; |
| sammir | 0:22b33429aff5 | 35 | } |
| sammir | 0:22b33429aff5 | 36 | } |
| sammir | 0:22b33429aff5 | 37 | } |
| sammir | 0:22b33429aff5 | 38 | |
| sammir | 0:22b33429aff5 | 39 | uint32_t read_command() |
| sammir | 0:22b33429aff5 | 40 | { |
| sammir | 0:22b33429aff5 | 41 | // retorna los byte recibidos concatenados en un entero, |
| sammir | 0:22b33429aff5 | 42 | |
| sammir | 0:22b33429aff5 | 43 | char intc=command.getc(); |
| sammir | 0:22b33429aff5 | 44 | while(intc != 0xFF) |
| sammir | 0:22b33429aff5 | 45 | intc=command.getc(); |
| sammir | 0:22b33429aff5 | 46 | return command.getc(); |
| sammir | 0:22b33429aff5 | 47 | } |
| sammir | 0:22b33429aff5 | 48 | void init_serial() |
| sammir | 0:22b33429aff5 | 49 | { |
| sammir | 0:22b33429aff5 | 50 | command.baud(9600); |
| sammir | 0:22b33429aff5 | 51 | } |
| sammir | 0:22b33429aff5 | 52 | void moving(){ |
| sammir | 0:22b33429aff5 | 53 | debug_m("se inicia el comado mover..\n"); |
| sammir | 0:22b33429aff5 | 54 | char nmotor=command.getc(); |
| sammir | 0:22b33429aff5 | 55 | char pos=command.getc(); |
| sammir | 0:22b33429aff5 | 56 | char endc=command.getc(); |
| sammir | 0:22b33429aff5 | 57 | mover_ser(nmotor,pos); |
| sammir | 0:22b33429aff5 | 58 | debug_m("fin del comado guardar..\n"); |
| sammir | 0:22b33429aff5 | 59 | } |
| sammir | 0:22b33429aff5 | 60 | void moving2(){ |
| sammir | 0:22b33429aff5 | 61 | debug_m("se inicia el comado mover arana..\n"); |
| sammir | 0:22b33429aff5 | 62 | char nmotor=command.getc(); |
| sammir | 0:22b33429aff5 | 63 | char pos=command.getc(); |
| sammir | 0:22b33429aff5 | 64 | char endc=command.getc(); |
| sammir | 0:22b33429aff5 | 65 | mover_ser2(nmotor,pos); |
| sammir | 0:22b33429aff5 | 66 | debug_m("fin del comado guardar..\n"); |
| sammir | 0:22b33429aff5 | 67 | } |
| sammir | 0:22b33429aff5 | 68 | |
| sammir | 0:22b33429aff5 | 69 | void moving3(){ |
| sammir | 0:22b33429aff5 | 70 | |
| sammir | 0:22b33429aff5 | 71 | debug_m("se inicia el comado caminar adelante..\n"); |
| sammir | 0:22b33429aff5 | 72 | mover_ser3(); |
| sammir | 0:22b33429aff5 | 73 | debug_m("fin del comado guardar..\n"); |
| sammir | 0:22b33429aff5 | 74 | } |
| sammir | 0:22b33429aff5 | 75 | |
| sammir | 0:22b33429aff5 | 76 | |
| sammir | 0:22b33429aff5 | 77 | void sensor() |
| sammir | 0:22b33429aff5 | 78 | { |
| sammir | 0:22b33429aff5 | 79 | while(1){ |
| sammir | 0:22b33429aff5 | 80 | color=command.getc(); |
| sammir | 0:22b33429aff5 | 81 | S0=1; |
| sammir | 0:22b33429aff5 | 82 | S1=1; |
| sammir | 0:22b33429aff5 | 83 | S2=0; |
| sammir | 0:22b33429aff5 | 84 | S3=0; |
| sammir | 0:22b33429aff5 | 85 | rojo=Detectar(); |
| sammir | 0:22b33429aff5 | 86 | command.printf("ROJO "); |
| sammir | 0:22b33429aff5 | 87 | command.printf("%d ",rojo); |
| sammir | 0:22b33429aff5 | 88 | S0=1; |
| sammir | 0:22b33429aff5 | 89 | S1=1; |
| sammir | 0:22b33429aff5 | 90 | S2=0; |
| sammir | 0:22b33429aff5 | 91 | S3=1; |
| sammir | 0:22b33429aff5 | 92 | azul=Detectar(); |
| sammir | 0:22b33429aff5 | 93 | command.printf("AZUL "); |
| sammir | 0:22b33429aff5 | 94 | command.printf("%d ",azul); |
| sammir | 0:22b33429aff5 | 95 | S0=1; |
| sammir | 0:22b33429aff5 | 96 | S1=1; |
| sammir | 0:22b33429aff5 | 97 | S2=1; |
| sammir | 0:22b33429aff5 | 98 | S3=1; |
| sammir | 0:22b33429aff5 | 99 | verde=Detectar(); |
| sammir | 0:22b33429aff5 | 100 | command.printf("VERDE"); |
| sammir | 0:22b33429aff5 | 101 | command.printf("%d\n ",verde); |
| sammir | 0:22b33429aff5 | 102 | |
| sammir | 0:22b33429aff5 | 103 | |
| sammir | 0:22b33429aff5 | 104 | if ((rojo>600)&(rojo<800) & (azul>600)&(azul<800) & (verde>100)){ |
| sammir | 0:22b33429aff5 | 105 | |
| sammir | 0:22b33429aff5 | 106 | command.printf("AZUL \n");} |
| sammir | 0:22b33429aff5 | 107 | |
| sammir | 0:22b33429aff5 | 108 | else{ |
| sammir | 0:22b33429aff5 | 109 | if ((rojo<200) & (azul<200) & (verde<200)){ |
| sammir | 0:22b33429aff5 | 110 | |
| sammir | 0:22b33429aff5 | 111 | command.printf("ROJO\n");} |
| sammir | 0:22b33429aff5 | 112 | |
| sammir | 0:22b33429aff5 | 113 | else{ |
| sammir | 0:22b33429aff5 | 114 | |
| sammir | 0:22b33429aff5 | 115 | if ((rojo>500)&(rojo<800) & (azul>500)&(azul<800) & (verde<100)){ |
| sammir | 0:22b33429aff5 | 116 | |
| sammir | 0:22b33429aff5 | 117 | command.printf("VERDE\n");} |
| sammir | 0:22b33429aff5 | 118 | |
| sammir | 0:22b33429aff5 | 119 | else{ |
| sammir | 0:22b33429aff5 | 120 | command.printf("COLOR NO VALIDO\n"); |
| sammir | 0:22b33429aff5 | 121 | } |
| sammir | 0:22b33429aff5 | 122 | } |
| sammir | 0:22b33429aff5 | 123 | } |
| sammir | 0:22b33429aff5 | 124 | } |
| sammir | 0:22b33429aff5 | 125 | } |
| sammir | 0:22b33429aff5 | 126 | |
| sammir | 0:22b33429aff5 | 127 | int Detectar(){ |
| sammir | 0:22b33429aff5 | 128 | tme=0; |
| sammir | 0:22b33429aff5 | 129 | while (!entrada){} |
| sammir | 0:22b33429aff5 | 130 | while (entrada) {} |
| sammir | 0:22b33429aff5 | 131 | while (!entrada){} |
| sammir | 0:22b33429aff5 | 132 | tiempo.start(); |
| sammir | 0:22b33429aff5 | 133 | while (entrada) {} |
| sammir | 0:22b33429aff5 | 134 | while (!entrada){} |
| sammir | 0:22b33429aff5 | 135 | while (entrada) {} |
| sammir | 0:22b33429aff5 | 136 | while (!entrada){} |
| sammir | 0:22b33429aff5 | 137 | while (entrada) {} |
| sammir | 0:22b33429aff5 | 138 | tiempo.stop(); |
| sammir | 0:22b33429aff5 | 139 | tme=tiempo.read_us(); |
| sammir | 0:22b33429aff5 | 140 | tiempo.reset(); |
| sammir | 0:22b33429aff5 | 141 | return(tme); |
| sammir | 0:22b33429aff5 | 142 | |
| sammir | 0:22b33429aff5 | 143 | |
| sammir | 0:22b33429aff5 | 144 | } |
| sammir | 0:22b33429aff5 | 145 | |
| sammir | 0:22b33429aff5 | 146 | |
| sammir | 0:22b33429aff5 | 147 | |
| sammir | 0:22b33429aff5 | 148 | void debug_m(char *s , ... ){ |
| sammir | 0:22b33429aff5 | 149 | #if DEBUG |
| sammir | 0:22b33429aff5 | 150 | command.printf(s); |
| sammir | 0:22b33429aff5 | 151 | #endif |
| sammir | 0:22b33429aff5 | 152 | } |