ENTREGA

Dependencies:   mbed

Fork of 01-04EntregaPrimerCorte by ferney alberto beltran molina

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"  //inicio programa.
00002 #include "main.h"
00003 #include "mover.h"
00004 int color=0;
00005 DigitalOut led (PB_4);
00006 Serial command(USBTX, USBRX); //cremos una clase de comunicación por USB llamada "command"
00007 
00008             char init_c;
00009             int read_cc;
00010             uint32_t posicion;
00011             uint32_t nmotores;    
00012             int endc;
00013 int main(){
00014     
00015     init_servo();  //llamamos a ejecutar la función "init_servo" para parametrizr los servos. Función en página mover.cpp
00016     init_serial(); //Lamamos a ajecurae la función "intit_servo" para parametrizr la trnsferencia de información. Función esn esta página.
00017 
00018     debug_m("\n inicio \n"); //se ejecurá la funsión "debug_m" para publicar "inicio". La función está al final de esta página.
00019     //uint32_t read_cc; //Se crea una variable llamada "read_cc",varible de 32 bi
00020     while(1){
00021         init_c=command.getc();
00022         if( init_c==0xFF){
00023             read_cc=command.getc();            
00024             nmotores=command.getc(); 
00025             posicion=command.getc();   
00026             endc=command.getc(); 
00027         
00028             if(endc==0xFD){
00029                 switch (read_cc) { //con el valor retornado y almacenado en la varible "read_cc" se realiza un switch para elegir qué operación se va ejecutar. 
00030                 case  0x01:
00031                 led=0;
00032                  command.printf(" ******Se movera de a un solo motor.****** \n\n");
00033                 moving(); 
00034                 
00035                 break; // en este caso solo hay una posible operación, mover un servo, se ejecuta la función "moving" al final de esta página.
00036                 case 0x02: 
00037                 led=0;
00038                 moverconjunto();
00039                 break;
00040                 case 0x03: 
00041                 led=1;
00042                 movercolor();
00043                 break;
00044                 case 0x04: 
00045                 led=1;
00046                 moveranalog();
00047                 break;
00048                 default: debug_m("error de comando. \ncomando no especificado \n");
00049                 led=0;
00050                 break ;
00051                 }
00052             }
00053             else 
00054             command.printf("Error de codigo de cierre \n");
00055             
00056         }
00057          else 
00058         command.printf("Error de codigo de inicio. \n");
00059         
00060          
00061     }
00062 }
00063 
00064 void init_serial()
00065 {
00066     command.baud(9600);    //velocidad de tranmisión
00067 }
00068 
00069 void moving(){
00070     
00071     debug_m("se inicia el comado mover..\n"); //se ejecuta la función "debug_m" con el dato "se inicia el comado mover.."    
00072     mover_ser(nmotores,posicion); //se ejecuta la función "mover_ser", página "mover.cpp",esta función se ejecutará con los datos "nmotor" y "grados" obtenidos anteriormente 
00073     debug_m("fin del comado mover..\n"); //se ejecuta la función "debug_m" para publicar el texto.     
00074 }
00075 
00076 void moverconjunto(){
00077     command.printf("________________________________________________________________________\n           ******Se movera un conjunto de motores.****** \n\n");
00078     mover_conjunto(nmotores,posicion);
00079 }
00080 void movercolor(){
00081     command.printf("________________________________________________________________________\n           ******Se movera el cuadrupedo.****** \n\n");
00082     sensor_color(nmotores,posicion);
00083     }
00084 void moveranalog(){
00085     //sensor_color(nmotores,posicion);
00086     m_analogo(nmotores,posicion);
00087     
00088     }
00089 
00090 void debug_m(char *s , ... ){  //función para publicar.
00091     #if DEBUG
00092     command.printf(s); //se publica el valor enviado.
00093     #endif  
00094 }