Javier Marcelo
/
STM32F103C8_RaicesReales
Programa de Raices Reales.
Revision 5:7bd28f4ca12b, committed 2019-10-25
- Comitter:
- JavierMarcelo98
- Date:
- Fri Oct 25 14:21:11 2019 +0000
- Parent:
- 4:e8498d695fc2
- Commit message:
- Programa de Raices Reales.
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r e8498d695fc2 -r 7bd28f4ca12b main.cpp --- a/main.cpp Wed Oct 23 04:10:29 2019 +0000 +++ b/main.cpp Fri Oct 25 14:21:11 2019 +0000 @@ -55,11 +55,8 @@ | Configuración de Puertos +------------------------------------------------------------------------------- */ -DigitalOut verde (LED1); // NC (Green_Led) -BusOut Torreta(PB_4,PB_3,PA_15,PA_12,PA_11,PA_10,PA_9,PA_8); // +DigitalOut verde (LED1); // NC (Green_Led) DigitalOut Led_Monitor (PB_1); // Led monitor de la Tarjeta STM32F103C8 -Ticker Barrido; -PwmOut Buzzer(PB_11); Serial terminal (PA_2, PA_3); // Inicializa la comunicación serial a la PC (Tx,Rx) //Serial terminal(USBTX, USBRX,115200);// Tx, Rx Baud Rate - Terminal Serial por USB @ 115,200 Bauds @@ -68,24 +65,13 @@ | Variables Globales de Usuario ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */ -uint8_t SecuenciaA[]={ //Secuencia de luces A - 0xC3,0x3C,0xC3,0x3C,0xC3,0x3C,0xC3,0x3C, - 0xC3,0xFF,0xC3,0xFF,0xC3,0xFF,0xC3,0xFF, - 0xC3,0xFF,0xC3,0xFF,0xC3,0xFF,0xC3,0xFF, - }; -uint16_t No_SecuenciasA=24; -uint16_t A=0; -uint16_t delayA=100; -uint16_t contadorA=0; // Velocidad de Transmisión (Bauds) - /* | Definición de Funciones Prototipo y Rutinas de los Vectores de Interrupción ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */ void Portada(); -void Seleccion(); +void Calculos(); void Setup(void); -void Barrido_OnInterrupt(void); /* END definitions */ /* @@ -98,9 +84,8 @@ int main() { // Inicialización de variables, puertos e interrupciones // Configure system clock (72MHz HSE clock, 48MHz USB clock) Setup(); // Inicialización del sistema - Portada(); //Mandar a llamar a la funcion Portada. -Seleccion(); //Mandar a llamar a la Seleccion. +Calculos(); //Mandar a llamar a la funcion Calculos. } /* END main */ @@ -122,123 +107,47 @@ { // terminal.baud(Baud_Rate); // Se configura la velocidad de transmisión e inicia la comunicación serial. terminal.baud(115200); // Se configura la velocidad de transmisión e inicia la comunicación serial. -} -void Portada()//Funcion Portada +} +void Portada()//Funcion Portada { - terminal.printf("ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA"); - terminal.printf("\n\rIngenieria en comunicaciones y electronica"); - terminal.printf("\n\rAnalisis Numerico"); - terminal.printf("\n\rPrograma N. 5 "); - terminal.printf("\n\rMarcelo Padron Javier"); - terminal.printf("\n\rGRUPO:4CV2"); - wait(3.0);//Retardo de 3 segundos - + terminal.printf("\n\r\t\e[1;32m0101 0101 010101 01 10 0101 0101 0101 0101 0101 0101 0101 01 10 0101 0101\e[0m"); + terminal.printf("\n\r\t\e[1;32m01 01 01 010 010 01 0 0 1 01 0 1 10 01 010 10 01 0 1\e[0m"); + terminal.printf("\n\r\t\e[1;32m0101 0101 01 01 1 10 0101 1 0101 01 0101 10 0101 01 1 10 01 0 1\e[0m"); + terminal.printf("\n\r\t\e[1;32m01 01 01 01 10 01 0 0 1 01 0 1 10 01 01 010 01 0 1\e[0m"); + terminal.printf("\n\r\t\e[1;32m0101 0101 010101 01 10 0101 0101 0 1 0101 0 1 10 0101 01 10 0101 0101\e[0m"); + terminal.printf("\n\n\r\t\e[1;32m \'NUESTROS COLORES VERDE \e[0m\e[1;37mY BLANCO, POR QUE EL\e[0m\e[1;31m ROJO LO LLEVAMOS EN LA SANGRE!!!\'\e[0m\n\n"); + terminal.printf("\n\r\t\t\e[1;37m ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA\e[0m"); + terminal.printf("\n\n\r\t\t\e[1;37m INGENIERIA EN COMUNICACIONES Y ELECTRONICA\e[0m"); + terminal.printf("\n\n\r\t\t\e[1;37m ANALISIS NUMERICO\e[0m"); + terminal.printf("\n\n\r\t\t\e[1;37m PROGRAMA: RAICES REALES\e[0m"); + terminal.printf("\n\n\r\t\t\e[1;37m ALUMNO: MARCELO PADRON JAVIER\e[0m"); + terminal.printf("\n\n\r\t\t\e[1;37m GRUPO: 4CV2\e[0m\n\n"); + wait(3.0);//Retardo de 3 segundos } -void Seleccion()//Funcion Seleccion -{ -Primero: - terminal.printf("\n\n\rEste programa despliega una secuencia de luces,\n\runa secuencia de sonido o ambas al mismo tiempo."); - terminal.printf("\n\rOprima 1 si: Desea que se despliegue la secuencia de luces."); - terminal.printf("\n\rOprima 2 si: Desea que se despliegue una secuencia de sonido."); - terminal.printf("\n\rOprima 3 si: Desea que se desplieguen ambas secuencias.\n\r"); - char valor = terminal.getc(); //Seleccion de opcion(No funciona!!) - wait(1.0); - valor = '3';//Valor predefinido que lanza la secuencia de Luces y del Buzzer - switch(valor) { //Menu de opciones - case '1': terminal.printf("\n\rUsted a seleccionado la opcion 1\n\r"); - wait(1.0); - terminal.printf("\n\rDesplegando secuencia en...."); - wait(1.0); - terminal.printf("\n\r3...."); - wait(1.0); - terminal.printf("\n\r2...."); - wait(1.0); - terminal.printf("\n\r1...."); - wait(1.0); - Barrido.attach_us(&Barrido_OnInterrupt, Ticker_Rate); - break; - case '2': terminal.printf("\n\rUsted a seleccionado la opcion 2\n\r"); - wait(1.0); - terminal.printf("\n\rDesplegando secuencia en...."); - wait(1.0); - terminal.printf("\n\r3...."); - wait(1.0); - terminal.printf("\n\r2...."); - wait(1.0); - terminal.printf("\n\r1...."); - wait(1.0); - for(int x=0; x<40; x++)//Este for solamente repite la secuencia, puedes modificar x. - { - int i; - for (i=0; i<26; i=i+2) { //For que se encarga de aumentar y disminuir frecuencias del Buzzer. - Buzzer.period(1.0/969.0); - Buzzer = float(i)/50.0; - wait(.5); - Buzzer.period(1.0/800.0); - wait(.5); - } - for (i=25; i>=0; i=i-2) { - Buzzer.period(1.0/969.0); - Buzzer = float(i)/50.0; - wait(.5); - Buzzer.period(1.0/800.0); - wait(.5); - } - Buzzer = 0.0; - } - break; - case '3': terminal.printf("\n\rUsted a seleccionado la opcion 3\n\r"); - wait(1.0); - terminal.printf("\n\rDesplegando secuencia en...."); - wait(1.0); - terminal.printf("\n\r3...."); - wait(1.0); - terminal.printf("\n\r2...."); - wait(1.0); - terminal.printf("\n\r1...."); - wait(1.0); - { - Barrido.attach_us(&Barrido_OnInterrupt, Ticker_Rate); - for(int x=0; x<40; x++) - { - int i; - for (i=0; i<26; i=i+2) { - Buzzer.period(1.0/969.0); - Buzzer = float(i)/50.0; - wait(.5); - Buzzer.period(1.0/800.0); - wait(.5); - } - for (i=25; i>=0; i=i-2) { - Buzzer.period(1.0/969.0); - Buzzer = float(i)/50.0; - wait(.5); - Buzzer.period(1.0/800.0); - wait(.5); - } - Buzzer = 0.0; - } - } - break; - default: terminal.printf("\n\r\n\rUsted ha ingresado una opcion que no es valida!!)"); - terminal.printf("\n\rEn unos instantes lo regresaremos al menu!!\n\r"); - wait(4.0); - goto Primero; // Regresa al usuario a la seleccion de opcion n veces hasta que seleccione una opcion valida -} -} -void Barrido_OnInterrupt() +void Calculos() { - /* Rutina de Atención a la Interrupción */ - contadorA++; // Incremeta el contador de mili segundos - if (contadorA == delayA) // Contador es igual al retardo programado? + float a,b,c; + float x1,x2,x3,ax,bx; + terminal.printf("\n\r\t\e[1;37mIntroduce los valores de a, b, c.\e[0m\n"); + terminal.printf("\n\r\t\e[1;37ma = \e[0m\n"); a = terminal.getc(); + terminal.printf("\n\r\t\e[1;37mb = \e[0m\n"); b = terminal.getc(); + terminal.printf("\n\r\t\e[1;37mc = \e[0m\n"); c = terminal.getc(); + c= sqrt(float (b*b)- 4*a*c); + ax=(-b-x3); + x1=ax/(2*a); + bx=(-b+x3); + x2=(-b+x3)/(2*a); + terminal.printf("\n\r\t\e[1;37mEl valor de x1 es %.2f \e[0m\n",x1); + terminal.printf("\n\r\t\e[1;37mEl valor de x2 es %.2f \e[0m\n",x2); + if(ax>0 || bx>0) { - Torreta=SecuenciaA[A]; // Escribe la secuencia - A++; // Incrementa el índice - if (A >= No_SecuenciasA) A=0; // Es la última secuencia? - contadorA =0; // Reinicia contador de retardo - Led_Monitor = !Led_Monitor; // Parpadeo del Led Monitor + terminal.printf("\n\r\t\e[1;37mLa ecuacion es real\e[0m\n"); } -} + else + { + terminal.printf("\n\r\t\e[1;37mLa ecuacion no es real\e[0m\n"); + } +} /* END routines */ /* END program */