Proyecto de Tesis en Mecatrónica. Universidad Técnica del Norte. Ernesto Palacios <mecatronica.mid@gmail.com>
Dependencies: EthernetNetIf HTTPServer QEI_hw RPCInterface mbed
Diff: main.cpp
- 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) {