codigo incompleto picolo

Dependencies:   mbed

Committer:
nicolas_guerrero
Date:
Tue Mar 13 22:58:02 2018 +0000
Revision:
0:d1c031b9a2c7
Child:
1:57436dbe2bf7
codigo incompleto 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 0:d1c031b9a2c7 3 #define MEM_TYPE uint8_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 0:d1c031b9a2c7 8
nicolas_guerrero 0:d1c031b9a2c7 9 MEM_TYPE arreglo2[MEM_SIZE];
nicolas_guerrero 0:d1c031b9a2c7 10 Serial pc(USBTX, USBRX);
nicolas_guerrero 0:d1c031b9a2c7 11 PwmOut motor_x(A3), motor_y(A1), motor_z(A0);
nicolas_guerrero 0:d1c031b9a2c7 12 int mem_head = 0,i;
nicolas_guerrero 0:d1c031b9a2c7 13 int mem_tail = 0;
nicolas_guerrero 0:d1c031b9a2c7 14 uint8_t full = 0;
nicolas_guerrero 0:d1c031b9a2c7 15 char b;
nicolas_guerrero 0:d1c031b9a2c7 16
nicolas_guerrero 0:d1c031b9a2c7 17
nicolas_guerrero 0:d1c031b9a2c7 18 void comando();
nicolas_guerrero 0:d1c031b9a2c7 19
nicolas_guerrero 0:d1c031b9a2c7 20 int coord2us(float coord);
nicolas_guerrero 0:d1c031b9a2c7 21 void draw();
nicolas_guerrero 0:d1c031b9a2c7 22 void nodraw();
nicolas_guerrero 0:d1c031b9a2c7 23 void vertex2d(float x, float y);
nicolas_guerrero 0:d1c031b9a2c7 24
nicolas_guerrero 0:d1c031b9a2c7 25
nicolas_guerrero 0:d1c031b9a2c7 26
nicolas_guerrero 0:d1c031b9a2c7 27 int main() {
nicolas_guerrero 0:d1c031b9a2c7 28 // configuracion de periodo
nicolas_guerrero 0:d1c031b9a2c7 29 motor_x.period_ms(periodo);
nicolas_guerrero 0:d1c031b9a2c7 30 motor_y.period_ms(periodo);
nicolas_guerrero 0:d1c031b9a2c7 31 motor_z.period_ms(periodo);
nicolas_guerrero 0:d1c031b9a2c7 32 motor_x.pulsewidth_us(725);
nicolas_guerrero 0:d1c031b9a2c7 33 motor_y.pulsewidth_us(725);
nicolas_guerrero 0:d1c031b9a2c7 34 motor_z.pulsewidth_us(725);
nicolas_guerrero 0:d1c031b9a2c7 35 int posx=0;
nicolas_guerrero 0:d1c031b9a2c7 36 int posy=0;
nicolas_guerrero 0:d1c031b9a2c7 37 pc.attach(&comando);
nicolas_guerrero 0:d1c031b9a2c7 38 while(1)
nicolas_guerrero 0:d1c031b9a2c7 39 {
nicolas_guerrero 0:d1c031b9a2c7 40
nicolas_guerrero 0:d1c031b9a2c7 41 }
nicolas_guerrero 0:d1c031b9a2c7 42 }
nicolas_guerrero 0:d1c031b9a2c7 43
nicolas_guerrero 0:d1c031b9a2c7 44
nicolas_guerrero 0:d1c031b9a2c7 45 int coord2us(float coord)
nicolas_guerrero 0:d1c031b9a2c7 46 {
nicolas_guerrero 0:d1c031b9a2c7 47 if(0 <= coord <= MAXPOS)
nicolas_guerrero 0:d1c031b9a2c7 48 return int(750+coord*1900/50);// u6
nicolas_guerrero 0:d1c031b9a2c7 49 return 750;
nicolas_guerrero 0:d1c031b9a2c7 50
nicolas_guerrero 0:d1c031b9a2c7 51 }
nicolas_guerrero 0:d1c031b9a2c7 52
nicolas_guerrero 0:d1c031b9a2c7 53 void draw()
nicolas_guerrero 0:d1c031b9a2c7 54 {
nicolas_guerrero 0:d1c031b9a2c7 55 motor_z.pulsewidth_us(POSDRAW);
nicolas_guerrero 0:d1c031b9a2c7 56 wait(1);
nicolas_guerrero 0:d1c031b9a2c7 57 }
nicolas_guerrero 0:d1c031b9a2c7 58 void nodraw()
nicolas_guerrero 0:d1c031b9a2c7 59 {
nicolas_guerrero 0:d1c031b9a2c7 60 motor_z.pulsewidth_us(MAXPOS);
nicolas_guerrero 0:d1c031b9a2c7 61 wait(1);
nicolas_guerrero 0:d1c031b9a2c7 62 }
nicolas_guerrero 0:d1c031b9a2c7 63 void vertex2d(float x, float y){
nicolas_guerrero 0:d1c031b9a2c7 64
nicolas_guerrero 0:d1c031b9a2c7 65 int pulseX = coord2us(x);
nicolas_guerrero 0:d1c031b9a2c7 66 int pulseY = coord2us(y);
nicolas_guerrero 0:d1c031b9a2c7 67
nicolas_guerrero 0:d1c031b9a2c7 68 motor_x.pulsewidth_us(pulseX);
nicolas_guerrero 0:d1c031b9a2c7 69 motor_y.pulsewidth_us(pulseY);
nicolas_guerrero 0:d1c031b9a2c7 70 wait_ms(SS_TIME);
nicolas_guerrero 0:d1c031b9a2c7 71
nicolas_guerrero 0:d1c031b9a2c7 72 }
nicolas_guerrero 0:d1c031b9a2c7 73 void comando ()
nicolas_guerrero 0:d1c031b9a2c7 74 {
nicolas_guerrero 0:d1c031b9a2c7 75 //MEM_TYPE caracter;
nicolas_guerrero 0:d1c031b9a2c7 76 MEM_TYPE arreglo[4];
nicolas_guerrero 0:d1c031b9a2c7 77 MEM_TYPE caracter;
nicolas_guerrero 0:d1c031b9a2c7 78 for (i=0;i<=3;i++)
nicolas_guerrero 0:d1c031b9a2c7 79 {
nicolas_guerrero 0:d1c031b9a2c7 80 arreglo[i]=pc.getc();
nicolas_guerrero 0:d1c031b9a2c7 81 }
nicolas_guerrero 0:d1c031b9a2c7 82 caracter=arreglo[0]&&arreglo[1]&&arreglo[2]&&arreglo[3];
nicolas_guerrero 0:d1c031b9a2c7 83 switch (caracter)
nicolas_guerrero 0:d1c031b9a2c7 84 {
nicolas_guerrero 0:d1c031b9a2c7 85 case 'F' && 'E' && 'F' && '0' :
nicolas_guerrero 0:d1c031b9a2c7 86 pc.printf("entro en ff\n\r");
nicolas_guerrero 0:d1c031b9a2c7 87 //b=pc.getc();
nicolas_guerrero 0:d1c031b9a2c7 88 while(b==!'A')
nicolas_guerrero 0:d1c031b9a2c7 89 {
nicolas_guerrero 0:d1c031b9a2c7 90 pc.printf("entro while llenar\n\r");
nicolas_guerrero 0:d1c031b9a2c7 91 arreglo2[mem_head]=pc.getc();
nicolas_guerrero 0:d1c031b9a2c7 92 b=arreglo2[mem_head];
nicolas_guerrero 0:d1c031b9a2c7 93 pc.printf("posicion 1 %f",arreglo2[mem_head]);
nicolas_guerrero 0:d1c031b9a2c7 94 mem_head++;
nicolas_guerrero 0:d1c031b9a2c7 95 }
nicolas_guerrero 0:d1c031b9a2c7 96 break;
nicolas_guerrero 0:d1c031b9a2c7 97 }
nicolas_guerrero 0:d1c031b9a2c7 98
nicolas_guerrero 0:d1c031b9a2c7 99 }