
final nnnn
Este proyecto es un Piccolo en el cual se envía comandos para la realización de un dibujo en especifico. El programa va a controlar servos y motores paso a paso teniendo libertad de movimiento en los ejes X,Y,Z; En el programa se utiliza Comunicacion Serial (TX,RX) y para leer el dato fue necesario concatenarlo debido a que recibe 8 Bits pero tenemos que recibir 4 paquetes de 8 Bits para llegar a 32 Bits y poder asi leerlo.
Se estan implementando algunas librerias para su ejecucion como la #include "memory.h" que es de memoria, #include memory_array_h, tambien definimos la memoria #define mm_size 10 de tipo Type Uint32_t, la libreria de operaciones #include "math.h" y la libreria para los motores #include "stepmotor.h".
Para su ejecucion se crearon variables de ejecucion:
CM_DRAWING 0XFF: Se ejecuta siempre y cuando exista datos validos para leer de memoria y nos muestra por medio de un mensaje que se esta ejecutando el dibujo
CM_SAVING 0XFE: Inicia el comando de guardar
CM_VERTEX2D 0XFD: Se encarga de dar las coordenadas a los servomotores en X,Y.
CM_DRAW 0XFC: Se encarga de mover nuestro motor en Z
CM_NODRAW 0XFB: Su funcion es volver a la posicion inicial el motor en el eje Z
CM_MOTOR 0XF9: Se encarga de mover los motores paso a paso para llegar a la ubicacion asignada ingresando el Numero de cuadrantes y su sentido de giro.
Revision 2:14fcd29abee0, committed 2018-04-26
- Comitter:
- ANTONIO_VARGAS
- Date:
- Thu Apr 26 01:48:40 2018 +0000
- Parent:
- 1:6ed951d975cc
- Commit message:
- explicacion programa piccolo
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r 6ed951d975cc -r 14fcd29abee0 main.cpp --- a/main.cpp Fri Apr 20 00:56:27 2018 +0000 +++ b/main.cpp Thu Apr 26 01:48:40 2018 +0000 @@ -14,13 +14,14 @@ draw(); nodraw(); home(); - debug_m("inicio \n"); - uint32_t read_cc; + debug_m("inicio \n");// inicia + uint32_t read_cc; //lee puerto serial lo que va a transmitir o recibir + while(1) { read_cc=read_command(); switch (read_cc) { - case CM_DRAWING: drawing(); break; + case CM_DRAWING: drawing(); break; case CM_SAVING: saving(); break; default: debug_m("error de comando. \nSe espera 0xFEF0 o 0xFFF0 \n");break ; } @@ -39,7 +40,9 @@ // para el caso del comando vertex2d se espera recibir 3 bytes, 1 del comando // y dos bytes para x y y, se retorna la concatenación de los tres bytes siempre y // cuando el cuarto byte sea CM_END de lo contrario retorna un cero - + //Se tienen 2 estados + //uno espera datos y el otro ejecuta apenas recibe el puerto serial un comando + uint32_t val=0; uint8_t cnt=0;