Diego Nova / Mbed 2 deprecated DEBUG1

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
dienov
Date:
Thu Oct 12 02:16:21 2017 +0000
Commit message:
Telecomandos - Piccolo

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Oct 12 02:16:21 2017 +0000
@@ -0,0 +1,215 @@
+#include "mbed.h"
+#include "mbed.h"
+#include "mbed.h"
+#define MAXPOS 255
+
+Serial command(USBTX, USBRX);
+DigitalOut led(LED1);
+#define DEBUG 1
+
+//*****************************************************************************
+//  COMANDO  MOVER MOTOR
+//  |POS 1|POS 2|POS 3|POS 4| POS 5|
+//  |  <  | #C  | a   | b   |  >   |
+//
+// #C -> indica el comando
+// a,b,c,d parametros del comando
+// <,> -> inicio,  y fin de  comando 
+//  el inicio de comando no se almacena en el buffer
+//*****************************************************************************
+
+// VARIABLES PARA DEFINIR  EL  COMMANDO
+#define BUFF_SIZE 6
+#define COMM_N 0
+#define INITPARAMETER  1
+
+
+// COMANDOS 
+#define PUNTO 0
+#define LINEA 1
+#define CUADRADO 2
+#define CIRCULO 3
+#define HOME 4
+
+PwmOut servoX(PB_3);
+PwmOut servoY(PB_5);
+PwmOut servoZ(PB_4);
+
+
+DigitalIn botoncirculo(PA_0);
+DigitalIn botonpunto(PB_0);
+DigitalIn botonlinea(PC_1);
+DigitalIn botoncuadrado(PC_0);
+float xvalue, yvalue, xiline,yiline,xfline,yfline;
+int xisquare, yisquare,lenght,xlado,ylado;
+double i,j,r;
+ 
+ 
+ int coord2pulse(float coord)
+{
+    if(0 <= coord <= MAXPOS)
+    return int(coord*1000/150+750);
+    return 750;
+}
+ 
+ 
+void vertex2d(float x, float y, float z){
+ 
+    int pulseX = coord2pulse(x);
+    int pulseY = coord2pulse(y);
+    int pulseZ = coord2pulse(z);
+    servoX.pulsewidth_us(pulseX);
+    servoY.pulsewidth_us(pulseY);
+    servoZ.pulsewidth_us(pulseZ);
+}
+
+uint8_t buffer_command[BUFF_SIZE]={0,0,0,0,0,0};
+
+void print_num(uint8_t val)
+
+{
+if (val <10)
+        command.putc(val+0x30);
+    else 
+        command.putc(val-9+0x40);
+        
+}
+void print_bin2hex (uint8_t val)
+{
+    command.printf(" 0x");
+    print_num(val>>4);
+    print_num(val&0x0f);
+        
+        
+}
+
+// TODO : TIMEOUT UART SERIAL
+void Read_command()
+{
+    for (uint8_t i=0; i<BUFF_SIZE;i++)
+        buffer_command[i]=command.getc();
+    
+}
+
+void echo_command()
+{
+    for (uint8_t i=0; i<BUFF_SIZE;i++)
+        print_bin2hex(buffer_command[i]);
+      
+}
+
+
+uint8_t check_command()
+{
+       if (buffer_command[BUFF_SIZE-1]== '>')
+        return 1;
+        return 0;        
+        
+     
+}
+void command_led(uint8_t tm)
+{
+  
+  //EJEMPLO DE COMANDO 
+      #if DEBUG
+        command.printf("%i, segundos", tm);
+    #endif
+              led=1;  
+                wait(tm);
+                led=0;   
+                 
+}
+
+  
+  
+  void linea(uint8_t xi, uint8_t yi,uint8_t xf,uint8_t yf)
+{      
+    
+    vertex2d(xi,yi,240);
+    wait_ms(600);
+    vertex2d(xf,yf,240);
+    wait_ms(600);
+   
+}       
+
+
+void command_exe()
+{
+    #if DEBUG
+        command.printf("Ejecutando comando: ");
+    #endif
+    
+switch (buffer_command[COMM_N]){
+
+case (PUNTO): 
+    linea(buffer_command[INITPARAMETER],buffer_command[INITPARAMETER+1],buffer_command[INITPARAMETER+2], buffer_command[INITPARAMETER+3]);   
+    #if DEBUG
+        command.printf("Dibujado Punto\n");
+    #endif
+    
+    
+break;
+
+case (LINEA):
+    #if DEBUG
+    command.printf("Dibujando Linea\n");
+    #endif  
+
+break;
+
+case  CUADRADO:
+    #if DEBUG
+    command.printf("Dibujando Cuadrado\n");
+    #endif
+
+
+break;
+
+case CIRCULO: 
+    #if DEBUG
+    command.printf("Dibujando Circulo\n");
+    #endif
+
+
+break;
+
+default:
+
+    #if DEBUG
+    command.printf("comando  no encontrado\n");
+    #endif
+
+        
+}
+}
+
+int main() {
+    #if DEBUG
+    command.printf("inicio con debug\n");
+    #else
+    command.printf("inicio sin debug\n");
+    #endif
+    uint8_t val;
+    while(1){
+        val=command.getc();
+        if (val== '<'){
+            Read_command();
+            if (check_command()){
+                command_exe();
+            }else{
+                #if DEBUG
+                    command.printf("\n ERROR COMANDO -> ");
+                    echo_command();
+                #endif
+            }        
+        }
+        else{
+                #if DEBUG
+                 command.printf("error de inicio de trama: ");
+                 command.putc(val);
+                #endif
+        }
+        
+    }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Thu Oct 12 02:16:21 2017 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/235179ab3f27
\ No newline at end of file