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:
- 36:a99dcd4d8f65
- Parent:
- 34:bdf918bc9b59
diff -r bdf918bc9b59 -r a99dcd4d8f65 setup.cpp --- a/setup.cpp Sat Jul 05 04:11:35 2014 +0000 +++ b/setup.cpp Mon Jul 07 15:53:02 2014 +0000 @@ -18,7 +18,7 @@ extern Serial pc; // Salida Serial de mbed extern Serial RS_232; // Salida Serial a MAX232 extern QEIHW encoder; -extern Timer crono; // Cronometro interno del microcontrolador +extern Timeout temporizador; // Cronometro interno del microcontrolador extern DigitalIn isPC; // Bit de configuracion serial en la placa extern DigitalOut pin_son; // SON extern DigitalOut pin_dir; // SIGN+ @@ -31,6 +31,9 @@ extern InterruptIn limite_3; extern InterruptIn limite_4; + + + int fq_posicion = 10000; // Variable global donde se almacenara // la velocidad de posicionamiento en Hz float t_alto; // para el posicionamiento del motor @@ -39,6 +42,20 @@ int bandera_inicio = 0; + + + +void fin_posicion() +{ + stopTimer2(); + + // Envia un OK de comando recibido + if( isPC ) + pc.printf("OK\r\n"); + else + RS_232.printf("OK\r\n"); +} + int velocidad_rpm() { return encoder.GetVelocityCap(); @@ -194,16 +211,9 @@ stopTimer2(); //Deten el tren de pulsos setPTO( fq_posicion ); //Nueva frecuencia de salida startTimer2(); //Inicia el tren de pulsos - wait( t_alto ); //Espera hasta llegar a la posicion - stopTimer2(); //Posicion alcanzada ALTO. + temporizador.attach( &fin_posicion, t_alto); - - // Envia un OK de comando recibido - if( isPC ) - pc.printf("OK\r\n"); - else - RS_232.printf("OK\r\n"); - + break; }