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: setup.cpp
- Revision:
- 31:7e2cdd547cb2
- Parent:
- 30:413d1a6648b5
- Child:
- 32:4483d6c225e5
--- a/setup.cpp Wed Feb 05 18:55:37 2014 +0000 +++ b/setup.cpp Sat May 03 00:14:17 2014 +0000 @@ -324,9 +324,9 @@ aout = 0.5 ; if(isPC) - pc.printf( "AL\r\n" ); //ALARMA! solo es AL para que - //sea conciso con el modo ETH y funcione - //bien en LabVIEW. + pc.printf( "AL\r\n" ); //ALARMA! solo es AL para que + //sea conciso con el modo ETH y funcione + //bien en LabVIEW. else RS_232.printf( "AL\r\n" ); } @@ -337,25 +337,51 @@ /** @brief: Esta es la rutina que maneja las interrupciones * del sensor óptico, al recibir una ALARMA de proximidad al encoder */ -void ISR_Alm_encoder(){} +void ISR_Alm_encoder() +{ + if( isPC ) + pc.printf("A0\r\n"); + else + RS_232.printf("A0\r\n"); +} /** @brief: Esta es la rutina que maneja las interrupciones * del sensor óptico, al recibir una ALARMA de proximidad al motor */ -void ISR_Alm_motor(){} +void ISR_Alm_motor() +{ + if( isPC ) + pc.printf("A0\r\n"); + else + RS_232.printf("A0\r\n"); +} /** @brief: Esta es la rutina que maneja las interrupciones * del sensor óptico, al recibir una advertencia de proximidad al encoder */ -void ISR_Adv_encoder(){} +void ISR_Adv_encoder() +{ + + if( isPC ) + pc.printf("A2\r\n"); + else + RS_232.printf("A2\r\n"); + +} /** @brief: Esta es la rutina que maneja las interrupciones * del sensor óptico, al recibir una advertencia de proximidad al motor */ -void ISR_Adv_motor(){} +void ISR_Adv_motor() +{ + if( isPC ) + pc.printf("A1\r\n"); + else + RS_232.printf("A1\r\n"); +} @@ -445,14 +471,46 @@ setMR2( getMRvalue( freq ) ); // Cambiar frefuencia startTimer2(); // Iniciar Timer if( pin_alm == 0 ) - sprintf( output,"OK\r\n" ); + { + if ( limite_2 == 1 ) // Alarma muy cerca al encoder + { + sprintf( output,"A2\r\n" ); + } + if ( limite_3 == 1 ) // Alarma muy cerca al encoder + { + sprintf( output,"A1\r\n" ); + } + if ( limite_1 == 1 || limite_4 == 1 ) // ERROR DE POSICION + { + sprintf( output,"A0\r\n" ); + } + + else + sprintf( output,"OK\r\n" ); + } else sprintf( output,"AL" ); }else{ stopTimer2(); LPC_TIM2->TC = 0x00; // Resetear Timer if( pin_alm == 0 ) - sprintf( output,"OK\r\n" ); + { + if ( limite_2 == 1 ) // Alarma muy cerca al encoder + { + sprintf( output,"A2\r\n" ); + } + if ( limite_3 == 1 ) // Alarma muy cerca al encoder + { + sprintf( output,"A1\r\n" ); + } + if ( limite_1 == 1 || limite_4 == 1 ) // ERROR DE POSICION + { + sprintf( output,"A0\r\n" ); + } + + else + sprintf( output,"OK\r\n" ); + } else sprintf( output,"AL" ); } @@ -471,7 +529,23 @@ stopTimer2(); //Posicion alcanzada ALTO. if( pin_alm == 0 ) - sprintf( output,"OK\r\n" ); + { + if ( limite_2 == 1 ) // Alarma muy cerca al encoder + { + sprintf( output,"A2\r\n" ); + } + if ( limite_3 == 1 ) // Alarma muy cerca al encoder + { + sprintf( output,"A1\r\n" ); + } + if ( limite_1 == 1 || limite_4 == 1 ) // ERROR DE POSICION + { + sprintf( output,"A0\r\n" ); + } + + else + sprintf( output,"OK\r\n" ); + } else sprintf( output,"AL" ); @@ -484,7 +558,23 @@ // Esta funcion cambia la velocidad con la que se // posicionara el eje del motor en un angulo determinado if( pin_alm == 0 ) - sprintf( output,"OK\r\n" ); + { + if ( limite_2 == 1 ) // Alarma muy cerca al encoder + { + sprintf( output,"A2\r\n" ); + } + if ( limite_3 == 1 ) // Alarma muy cerca al encoder + { + sprintf( output,"A1\r\n" ); + } + if ( limite_1 == 1 || limite_4 == 1 ) // ERROR DE POSICION + { + sprintf( output,"A0\r\n" ); + } + + else + sprintf( output,"OK\r\n" ); + } else sprintf( output,"AL" ); @@ -495,7 +585,23 @@ int vout = atoi( input ); aout = (float)( vout + 10000 ) / 20000; if( pin_alm == 0 ) - sprintf( output,"OK\r\n" ); + { + if ( limite_2 == 1 ) // Alarma muy cerca al encoder + { + sprintf( output,"A2\r\n" ); + } + if ( limite_3 == 1 ) // Alarma muy cerca al encoder + { + sprintf( output,"A1\r\n" ); + } + if ( limite_1 == 1 || limite_4 == 1 ) // ERROR DE POSICION + { + sprintf( output,"A0\r\n" ); + } + + else + sprintf( output,"OK\r\n" ); + } else sprintf( output,"AL" ); } @@ -509,7 +615,23 @@ pin_dir = value; if( pin_alm == 0 ) - sprintf( output,"OK\r\n" ); + { + if ( limite_2 == 1 ) // Alarma muy cerca al encoder + { + sprintf( output,"A2\r\n" ); + } + if ( limite_3 == 1 ) // Alarma muy cerca al encoder + { + sprintf( output,"A1\r\n" ); + } + if ( limite_1 == 1 || limite_4 == 1 ) // ERROR DE POSICION + { + sprintf( output,"A0\r\n" ); + } + + else + sprintf( output,"OK\r\n" ); + } else sprintf( output,"AL" ); } @@ -523,7 +645,23 @@ pin_son = value; if( pin_alm == 0 ) - sprintf( output,"OK\r\n" ); + { + if ( limite_2 == 1 ) // Alarma muy cerca al encoder + { + sprintf( output,"A2\r\n" ); + } + if ( limite_3 == 1 ) // Alarma muy cerca al encoder + { + sprintf( output,"A1\r\n" ); + } + if ( limite_1 == 1 || limite_4 == 1 ) // ERROR DE POSICION + { + sprintf( output,"A0\r\n" ); + } + + else + sprintf( output,"OK\r\n" ); + } else sprintf( output,"AL" ); @@ -533,7 +671,23 @@ void getENC_eth( char * input, char * output ) { if( pin_alm == 0 ) - sprintf( output,"%d", encoder.GetPosition() ); + { + if ( limite_2 == 1 ) // Alarma muy cerca al encoder + { + sprintf( output,"A2\r\n" ); + } + if ( limite_3 == 1 ) // Alarma muy cerca al encoder + { + sprintf( output,"A1\r\n" ); + } + if ( limite_1 == 1 || limite_4 == 1 ) // ERROR DE POSICION + { + sprintf( output,"A0\r\n" ); + } + + else + sprintf( output,"OK\r\n" ); + } else sprintf( output,"AL" ); } @@ -545,7 +699,23 @@ encoder.Reset(QEI_RESET_VEL); if( pin_alm == 0 ) - sprintf( output,"OK\r\n" ); + { + if ( limite_2 == 1 ) // Alarma muy cerca al encoder + { + sprintf( output,"A2\r\n" ); + } + if ( limite_3 == 1 ) // Alarma muy cerca al encoder + { + sprintf( output,"A1\r\n" ); + } + if ( limite_1 == 1 || limite_4 == 1 ) // ERROR DE POSICION + { + sprintf( output,"A0\r\n" ); + } + + else + sprintf( output,"OK\r\n" ); + } else sprintf( output,"AL" ); @@ -560,7 +730,23 @@ if( pin_alm == 0 ) - sprintf( output,"%d",rpm ); + { + if ( limite_2 == 1 ) // Alarma muy cerca al encoder + { + sprintf( output,"A2\r\n" ); + } + if ( limite_3 == 1 ) // Alarma muy cerca al encoder + { + sprintf( output,"A1\r\n" ); + } + if ( limite_1 == 1 || limite_4 == 1 ) // ERROR DE POSICION + { + sprintf( output,"A0\r\n" ); + } + + else + sprintf( output,"OK\r\n" ); + } else sprintf( output,"AL" );