codigo incompleto picolo

Dependencies:   mbed

Committer:
nicolas_guerrero
Date:
Wed Mar 14 02:53:04 2018 +0000
Revision:
1:57436dbe2bf7
Parent:
0:d1c031b9a2c7
codigo picolo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nicolas_guerrero 0:d1c031b9a2c7 1 #include "mbed.h"
nicolas_guerrero 0:d1c031b9a2c7 2 #define MEM_SIZE 5000
nicolas_guerrero 1:57436dbe2bf7 3 #define MEM_TYPE uint32_t
nicolas_guerrero 0:d1c031b9a2c7 4 #define MAXPOS 50 // en milimetros
nicolas_guerrero 0:d1c031b9a2c7 5 #define SS_TIME 100 // en microsegundos
nicolas_guerrero 0:d1c031b9a2c7 6 #define POSDRAW 10
nicolas_guerrero 0:d1c031b9a2c7 7 #define periodo 20
nicolas_guerrero 1:57436dbe2bf7 8 #define CM_EJECUTAR 0xff
nicolas_guerrero 1:57436dbe2bf7 9 #define CM_GUARDAR 0xfe
nicolas_guerrero 1:57436dbe2bf7 10 #define CM_VERTEX2D 0xfd
nicolas_guerrero 1:57436dbe2bf7 11 #define CM_DRAW 0xfc
nicolas_guerrero 1:57436dbe2bf7 12 #define CM_NODRAW 0xfb
nicolas_guerrero 1:57436dbe2bf7 13 #define CM_STOP 0xfa
nicolas_guerrero 1:57436dbe2bf7 14 #define CM_END 0xf0
nicolas_guerrero 0:d1c031b9a2c7 15
nicolas_guerrero 0:d1c031b9a2c7 16 MEM_TYPE arreglo2[MEM_SIZE];
nicolas_guerrero 0:d1c031b9a2c7 17 Serial pc(USBTX, USBRX);
nicolas_guerrero 0:d1c031b9a2c7 18 PwmOut motor_x(A3), motor_y(A1), motor_z(A0);
nicolas_guerrero 0:d1c031b9a2c7 19 int mem_head = 0,i;
nicolas_guerrero 0:d1c031b9a2c7 20 int mem_tail = 0;
nicolas_guerrero 0:d1c031b9a2c7 21 uint8_t full = 0;
nicolas_guerrero 0:d1c031b9a2c7 22 char b;
nicolas_guerrero 1:57436dbe2bf7 23 MEM_TYPE comando,px,py,condicionf;
nicolas_guerrero 0:d1c031b9a2c7 24
nicolas_guerrero 0:d1c031b9a2c7 25
nicolas_guerrero 0:d1c031b9a2c7 26
nicolas_guerrero 0:d1c031b9a2c7 27 int coord2us(float coord);
nicolas_guerrero 0:d1c031b9a2c7 28 void draw();
nicolas_guerrero 0:d1c031b9a2c7 29 void nodraw();
nicolas_guerrero 0:d1c031b9a2c7 30 void vertex2d(float x, float y);
nicolas_guerrero 1:57436dbe2bf7 31 ///////////////////////////////////////////////////////
nicolas_guerrero 1:57436dbe2bf7 32 void ejecutar(){
nicolas_guerrero 1:57436dbe2bf7 33 pc.printf("se esta ejecutando el dibujo...");
nicolas_guerrero 1:57436dbe2bf7 34 for(i=0;i<mem_head-1;i++)
nicolas_guerrero 1:57436dbe2bf7 35 {
nicolas_guerrero 1:57436dbe2bf7 36 if (arreglo2[i]==CM_VERTEX2D)//FD F0
nicolas_guerrero 1:57436dbe2bf7 37 {
nicolas_guerrero 1:57436dbe2bf7 38 i++;
nicolas_guerrero 1:57436dbe2bf7 39 px=arreglo2[i]
nicolas_guerrero 1:57436dbe2bf7 40
nicolas_guerrero 1:57436dbe2bf7 41 }
nicolas_guerrero 1:57436dbe2bf7 42 }
nicolas_guerrero 1:57436dbe2bf7 43
nicolas_guerrero 1:57436dbe2bf7 44 }
nicolas_guerrero 1:57436dbe2bf7 45 /////////////////////////////////////////////////////////////
nicolas_guerrero 1:57436dbe2bf7 46 void guardar(){
nicolas_guerrero 1:57436dbe2bf7 47 pc.printf("se inicia el comado de guardar..");
nicolas_guerrero 1:57436dbe2bf7 48 mem_head=0;
nicolas_guerrero 1:57436dbe2bf7 49 do
nicolas_guerrero 1:57436dbe2bf7 50 {
nicolas_guerrero 1:57436dbe2bf7 51 pc.printf("entro while llenar\n\r");
nicolas_guerrero 1:57436dbe2bf7 52 arreglo2[mem_head]=pc.getc();
nicolas_guerrero 1:57436dbe2bf7 53 b=arreglo2[mem_head];
nicolas_guerrero 1:57436dbe2bf7 54 //pc.printf("posicion %i %c",mem_head,arreglo2[mem_head]);
nicolas_guerrero 1:57436dbe2bf7 55 mem_head++;
nicolas_guerrero 1:57436dbe2bf7 56 }
nicolas_guerrero 1:57436dbe2bf7 57 while(b!=CM_STOP);
nicolas_guerrero 1:57436dbe2bf7 58
nicolas_guerrero 1:57436dbe2bf7 59 }
nicolas_guerrero 0:d1c031b9a2c7 60
nicolas_guerrero 0:d1c031b9a2c7 61 int main() {
nicolas_guerrero 0:d1c031b9a2c7 62 // configuracion de periodo
nicolas_guerrero 0:d1c031b9a2c7 63 motor_x.period_ms(periodo);
nicolas_guerrero 0:d1c031b9a2c7 64 motor_y.period_ms(periodo);
nicolas_guerrero 0:d1c031b9a2c7 65 motor_z.period_ms(periodo);
nicolas_guerrero 0:d1c031b9a2c7 66 motor_x.pulsewidth_us(725);
nicolas_guerrero 0:d1c031b9a2c7 67 motor_y.pulsewidth_us(725);
nicolas_guerrero 0:d1c031b9a2c7 68 motor_z.pulsewidth_us(725);
nicolas_guerrero 0:d1c031b9a2c7 69 int posx=0;
nicolas_guerrero 0:d1c031b9a2c7 70 int posy=0;
nicolas_guerrero 1:57436dbe2bf7 71 char caracter;
nicolas_guerrero 1:57436dbe2bf7 72 while(1)
nicolas_guerrero 0:d1c031b9a2c7 73 {
nicolas_guerrero 1:57436dbe2bf7 74 caracter=pc.getc();
nicolas_guerrero 1:57436dbe2bf7 75 switch (caracter) {
nicolas_guerrero 1:57436dbe2bf7 76 case CM_EJECUTAR: ejecutar(); break;
nicolas_guerrero 1:57436dbe2bf7 77 case CM_GUARDAR: guardar(); break;
nicolas_guerrero 1:57436dbe2bf7 78 default: pc.printf("error de comando\r\n");break ;
nicolas_guerrero 1:57436dbe2bf7 79 }
nicolas_guerrero 0:d1c031b9a2c7 80 }
nicolas_guerrero 0:d1c031b9a2c7 81 }
nicolas_guerrero 0:d1c031b9a2c7 82
nicolas_guerrero 0:d1c031b9a2c7 83
nicolas_guerrero 0:d1c031b9a2c7 84 int coord2us(float coord)
nicolas_guerrero 0:d1c031b9a2c7 85 {
nicolas_guerrero 0:d1c031b9a2c7 86 if(0 <= coord <= MAXPOS)
nicolas_guerrero 0:d1c031b9a2c7 87 return int(750+coord*1900/50);// u6
nicolas_guerrero 0:d1c031b9a2c7 88 return 750;
nicolas_guerrero 0:d1c031b9a2c7 89
nicolas_guerrero 0:d1c031b9a2c7 90 }
nicolas_guerrero 0:d1c031b9a2c7 91
nicolas_guerrero 0:d1c031b9a2c7 92 void draw()
nicolas_guerrero 0:d1c031b9a2c7 93 {
nicolas_guerrero 0:d1c031b9a2c7 94 motor_z.pulsewidth_us(POSDRAW);
nicolas_guerrero 0:d1c031b9a2c7 95 wait(1);
nicolas_guerrero 0:d1c031b9a2c7 96 }
nicolas_guerrero 0:d1c031b9a2c7 97 void nodraw()
nicolas_guerrero 0:d1c031b9a2c7 98 {
nicolas_guerrero 0:d1c031b9a2c7 99 motor_z.pulsewidth_us(MAXPOS);
nicolas_guerrero 0:d1c031b9a2c7 100 wait(1);
nicolas_guerrero 0:d1c031b9a2c7 101 }
nicolas_guerrero 0:d1c031b9a2c7 102 void vertex2d(float x, float y){
nicolas_guerrero 0:d1c031b9a2c7 103
nicolas_guerrero 0:d1c031b9a2c7 104 int pulseX = coord2us(x);
nicolas_guerrero 0:d1c031b9a2c7 105 int pulseY = coord2us(y);
nicolas_guerrero 0:d1c031b9a2c7 106
nicolas_guerrero 0:d1c031b9a2c7 107 motor_x.pulsewidth_us(pulseX);
nicolas_guerrero 0:d1c031b9a2c7 108 motor_y.pulsewidth_us(pulseY);
nicolas_guerrero 0:d1c031b9a2c7 109 wait_ms(SS_TIME);
nicolas_guerrero 0:d1c031b9a2c7 110
nicolas_guerrero 0:d1c031b9a2c7 111 }