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.
Fork of 01-04EntregaPrimerCorte by
main.cpp
- Committer:
- Yances64
- Date:
- 2018-09-09
- Revision:
- 2:dd42be3f7753
- Parent:
- 1:526bdd5faa37
File content as of revision 2:dd42be3f7753:
#include "mbed.h" //inicio programa.
#include "main.h"
Serial command(USBTX, USBRX); //cremos una clase de comunicación por USB llamada "command"
int main() {
init_servo(); //llamamos a ejecutar la función "init_servo" para parametrizr los servos. Función en página mover.cpp
init_serial(); //Lamamos a ajecurae la función "intit_servo" para parametrizr la trnsferencia de información. Función esn esta página.
debug_m("inicio \n"); //se ejecurá la funsión "debug_m" para publicar "inicio". La función está al final de esta página.
uint32_t read_cc; //Se crea una variable llamada "read_cc",varible de 32 bits
while(1) //while infinito
{
read_cc=read_command(); //se le dice a "read_cc" que tome los valores obtenidos de la ejecución de la función "read_command(), claramente se ejecuta la función, función alfinal de esta página.
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.
case 0x01: moving(); 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.
default: debug_m("error de comando. \nSe espera 0xFEF0 o 0xFFF0 \n");break ;
}
}
}
uint32_t read_command()
{
char intc=command.getc(); //creamos una variable llamada "intc" (comando de inicio) que obtiene el dato del puerto USB, este es el primer dato recibido de la cadena de caractéres enviados a la tarjeta
while(intc != 0xFF) //con el valor obtenido se realiza un while, que se ejecutará mientras el primer dato de la cadena sea "FF".
intc=command.getc(); //se lee nuevamente el puerto serial y obtenemos el segundo dato de la cadena de caractéres (tipo de operción a ejecutar)
return command.getc(); //retornamos el valor obtenido.
}
void init_serial()
{
command.baud(9600); //velocidad de tranmisión
}
void moving(){
debug_m("se inicia el comado mover..\n"); //se ejecuta la función "debug_m" con el dato "se inicia el comado mover.."
char nmotor=command.getc(); //se crea variable "nmotor" que es cargada con el dato obtenido del puerto serial, tercer dato de la cadena.
char grados=command.getc(); //se crea la variable "grados" que es cargada con el dato obtenido del puerto serial, cuarto dato de la cadena.
char endc=command.getc(); //se crea la variable "endc" que es cargada con el dato obtenido del puerto serial, quinto y últio dato de la cadena, caracter de ciere.
mover_ser(nmotor,grados); //se ejecuta la función "mover_ser", página "mover.cpp",esta función se ejecutará con los datos "nmotor" y "grados" obtenidos anteriormente
debug_m("fin del comado guardar..\n"); //se ejecuta la función "debug_m" para publicar el texto.
}
void debug_m(char *s , ... ){ //función para publicar.
#if DEBUG
command.printf(s); //se publica el valor enviado.
#endif
}
