Proyecto de Tesis en Mecatrónica. Universidad Técnica del Norte. Ernesto Palacios <mecatronica.mid@gmail.com>

Dependencies:   EthernetNetIf HTTPServer QEI_hw RPCInterface mbed

Revision:
20:4b154134ab20
Parent:
19:c26cf8a48986
Child:
21:353b0fe8fc54
--- a/main.cpp	Wed May 23 17:09:28 2012 +0000
+++ b/main.cpp	Wed Jun 06 03:08:27 2012 +0000
@@ -1,4 +1,17 @@
-//  GENERADOR DE FRECUENCIAS
+/*******************************************************************\
+ *                                                                 *
+ *                        DESLIZADOR LINEAL UTN                    *
+ *                                                                 *
+ *   Archivo:      main.cpp                                        *
+ *   Autor:        Ernesto Palacios <meacatronica.mid@gmail.com>   *
+ *   Version:      v2.0                                            *
+ *   Dependencias: setup.h, setup.cpp                              *
+ *   Descripción:  Este es el archivo principal para el microcon-  *
+ *                 trolador mbed para la comunicación  y  control  *
+ *                 del deslizador                                  *
+ *   Fecha:        Ibarra, 05 de junio de 2012                     *
+ *                                                                 *
+ *******************************************************************/
  
 #include "mbed.h"
 #include "setup.h"
@@ -6,16 +19,17 @@
 #include "HTTPServer.h"
 #include "RPCFunction.h"
 #include "RPCVariable.h"
-//#include "SerialRPCInterface.h"
+
+//  Entradas Salidas 
 
 Serial          pc( USBTX, USBRX ); //Comunicacion Serial directa al computador
 Serial          RS_232(p9, p10);    //Comunicacion Serial para MAX232
-Serial          encoder(p28, p27);  //Comunicacion Serial para tarjeta del encoder
+I2C             encoder(p28, p27);  //Comunicacion I2C para los encoders
 
 DigitalOut      pin_son( p7 );       // SON
 DigitalOut      pin_dir( p26 );     //  SIGN+
 InterruptIn     pin_alm( p8 );     //   ALM 
-AnalogOut       aout( p18 );      //    0.0 a 1.0 float
+AnalogOut       aout( p18 );      //    VOUT
 
 DigitalIn       isHTTP( p15 );   // Modo Ethernet/Serial
 DigitalIn       isFast( p16 );   // Serial Alta velocidad/Baja Velocidad
@@ -24,16 +38,17 @@
 DigitalOut      led_verde( p21 ); // Led verde del conector Ethernet
 DigitalOut      led_rojo(  p22 ); // Led naranja del conector Ethernet
 
-// Faltan las interrupciones del enconder.
+//  Objetos Ethernet
 
 EthernetNetIf eth;  
 HTTPServer svr;
-        
-
 LocalFileSystem fs("local");
 
 
-//  Anadir funciones al Protocolo RPC
+//  Anadir funciones al Protocolo RPC:
+//
+//  estas son las funciones de acceso de la libreria HTTP_ASM sobre
+//  el Protocolo RPC
 RPCFunction SetFQ  (&setPTO_eth,  "PTO");
 RPCFunction SetAOUT(&setAout_eth, "AOUT");
 RPCFunction SetDIR (&setDir_eth,  "DIR");
@@ -45,10 +60,11 @@
 
 int main() {
     
-//**********************************************************************************************//
-    if( isHTTP )   //Configura Red Ethernet
+//***************    Configura Red Ethernet     **************************************************//
+    if( isHTTP )   
     {
-                           
+
+        // Añade clases base al protocolo RPC
         Base::add_rpc_class<AnalogIn>();
         Base::add_rpc_class<AnalogOut>();
         Base::add_rpc_class<DigitalIn>();
@@ -61,11 +77,12 @@
         Base::add_rpc_class<BusInOut>();
         Base::add_rpc_class<Serial>();
         
+        // Configura conexión Ethernet
         printf("Configurando...\n");
         EthernetErr ethErr = eth.setup();
         if(ethErr)
         {
-            printf("Error %d en setup.\n", ethErr);
+            printf("Error %d en la configuración.\n", ethErr);
             return -1;
         }
         printf("Setup OK\n");
@@ -87,30 +104,39 @@
         // http://a.b.c.d/mbed.htm or http://a.b.c.d/files/mbed.htm
    
     }
-//**********************************************************************************************************//
+
+
+//***************    Configura Comunicacion Serial     **************************************************//
     
     else  // Caso Contrario Anadir modo Serial
     {
-        if( isPC )          //Si utiliza el Puerto Virtual Incluido.
+        if( isPC )                      // Utiliza el Puerto Virtual Incluido.
         {
             pc.attach( &ISR_Serial );
-            if( isFast ) //Configurar Serial a alta velocidad
+            
+            if( isFast )                     //Configurar Serial a alta velocidad
                 pc.baud( 115200 );
         }
-        else               // Utiiliza el puerto con MAX232 o directamente (TTL)
+        else                          // Utiiliza el puerto serial hacia MAX232
         {
             RS_232.attach( &ISR_Serial );
-            if( isFast )  //Configuración serial a alta velocidad
+            if( isFast )                     //Configurar Serial a alta velocidad
                 RS_232.baud( 115200 );
         }
     }
     
+//*******************************************************************************************************//
+    
+    
     // Ajustes iniciales del Driver
-    setTimer2();  // Configurar PTO
-    pin_son = 0;  // Servo Apagado por defecto
+    setTimer2();    // Configurar PTO
+    pin_son = 0;   // Servo Apagado por defecto
     aout = 0.5;   // Voltaje de salida 0V por defecto( +-10V! )
     
-    pin_alm.fall( &ISR_Alarm ); //Entrada de la alarma
+    
+    // Atar las alarmas a las interrupciones
+    
+    pin_alm.fall( &ISR_Alarm ); // Entrada de la alarma
     
     while(1) 
     {