Camilo Ramirez
/
ENTREGA1
AVANCE PICCOLO CORTE 1
Diff: main.cpp
- Revision:
- 3:c3d197a71ecd
- Parent:
- 2:274426ac7654
--- a/main.cpp Fri Mar 16 04:54:34 2018 +0000 +++ b/main.cpp Sat Mar 17 05:44:19 2018 +0000 @@ -9,47 +9,51 @@ PwmOut mypwmY(PB_5); PwmOut mypwmZ(PB_3); -uint32_t mem_head = 0; -uint32_t mem_tail = 0; +uint32_t mem_head = 0; +uint32_t mem_tail = 0; uint32_t full=0; -MEM_TYPE buffer[MEM_SIZE]; +MEM_TYPE buffer[MEM_SIZE]; -void mem_free() +void mem_free() { mem_head=0; full=0; mem_tail=0; } -uint32_t mem_put(MEM_TYPE data) +uint32_t mem_put(MEM_TYPE data) // { - if(full){ - return 1; + if(full) + { + return 1; // + } + buffer [mem_head]=data; + mem_head+=1; + if(mem_head==MEM_SIZE) + { + full=1; } - buffer [mem_head]=data; - mem_head+=1; - if(mem_head==MEM_SIZE) - full=1; + return 0; +} + +uint32_t mem_get(MEM_TYPE* data) +{ + if(mem_head == 0) + return 1; + if (mem_head == mem_tail) + return 1; + + *data=buffer[mem_tail]; + mem_tail +=1; + return 0; } -uint32_t mem_get(MEM_TYPE* data) -{ - if(mem_head == 0) - return 1; - if (mem_head == mem_tail) - return 1; - - *data=buffer[mem_tail]; - mem_tail +=1; - - return 0; -} void Vertex2D(uint8_t,uint8_t); void SetZ(uint8_t); uint8_t x,y,z; -int mm2pulse(float vmm); +int mm2pulse(float vmm); void program_serial(); void ejecutar(); int guardar(); @@ -59,23 +63,21 @@ mypwmX.period_ms(20); mypwmY.period_ms(20); mypwmZ.period_ms(20); - mypwmX.pulsewidth_us(MAXPULSE); - mypwmY.pulsewidth_us(MAXPULSE); - mypwmZ.pulsewidth_us(NODRAW); program_serial(); uint8_t letra,subletra; Vertex2D(0,0); SetZ(NODRAW); myled = 1; wait(2); - while(1) { + while(1) + { pc.printf("ingrese comando \n"); - letra=pc.getc(); + letra=pc.getc(); subletra=pc.getc(); if(subletra==CM_STOP) { - switch(letra) - { + switch(letra) + { case CM_EJECUTAR: if(mem_head!=mem_tail) { @@ -96,7 +98,7 @@ } break; default: pc.printf("error de comando \n");break ; - } + } } else { @@ -134,15 +136,15 @@ { program_serial(); pc.printf("el programa se esta ejecutando \n"); - uint8_t a=0,b=0,c=0,d=0; - uint32_t l,l1,l2,l3; - MEM_TYPE val; + uint8_t a=0,b=0,c=0,d=0; + uint32_t l,l1,l2,l3; + MEM_TYPE val; // - mem_get(&val); - l1=(val&0xff00)>>8; - l2=(val&0xff0000)>>16; - l3=(val&0xff000000)>>24; - l=val&0xff; + mem_get(&val); + l1=(val&0xff00)>>8; + l2=(val&0xff0000)>>16; + l3=(val&0xff000000)>>24; + l=val&0xff; while(c!=CM_END) { a=l3; @@ -166,20 +168,20 @@ SetZ(NODRAW); } mem_get(&val); - l1=(val&0xff00)>>8; + l1=(val&0xff00)>>8; l2=(val&0xff0000)>>16; l3=(val&0xff000000)>>24; l=val&0xff; wait(1); } pc.printf("el programa se termino de ejecutar \n"); - mem_tail=0; + mem_tail=0; } int guardar() { mem_free(); - uint32_t l=0; - uint8_t sl; + uint32_t l=0; + uint8_t sl; program_serial(); pc.printf("ingrese sus comandos y coordenadas \n"); sl=pc.getc(); @@ -189,7 +191,7 @@ switch(sl) { case CM_SERVO: - l=l+sl<<8; + l=l+sl<<8; sl=pc.getc(); l=l+sl; pc.putc(l); @@ -199,14 +201,14 @@ pc.putc(l); l=l<<8; sl=pc.getc(); - if(sl!=CM_STOP) + if(sl!=CM_STOP) { pc.printf("comando End no definido \n"); return 1; } l=l+sl; pc.putc(l); - mem_put(l); + mem_put(l); break; case CM_SDRAW: l=l+sl<<8;