Javier Marcelo
/
STM32F103C8_Minimos
Programa de Minimos.
main.cpp
- Committer:
- JavierMarcelo98
- Date:
- 2019-10-25
- Revision:
- 7:ec4c4e249c82
- Parent:
- 6:57457ad17880
File content as of revision 7:ec4c4e249c82:
/* ########################################################################### ** Archivo : main.c ** Proyecto : STM32-103C8_Minimos ** Procesador : STM32F103C8 ** Herramienta : Mbed ** Version : Driver 01.01 ** Compilador : GNU C Compiler ** Fecha/Hora : 14-07-2015, 11:48, # CodeGen: 0 ** Descripción : ** Este proyecto muestra la configuración y uso de la Terminal Serial ** This module contains user's application code. ** Componentes : Timer, etc . ** Configuraciones : Se puede seleccionar entre diferentes velocodades de ** transmisión ** Autores : ** ATEAM Development Group: ** - Antulio Morgado Valle ** - Marcelo Padron Javier ** ** Versión : Beta ** Revisión : A ** Release : 0 ** Bugs & Fixes : ** Date : 22/10/2019 ** ** ** ** ** ###########################################################################*/ /* :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: : Includes :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */ #include "stm32f103c8t6.h" #include "mbed.h" #include "Serial.h" #include "stdio.h" /* :............................................................................... : Definiciones :............................................................................... */ #define on 0 // Estado para boton presionado #define off 1 // Estado para boton sin presionar #define hold 2 // Estado para boton mantenido #define release 3 // Estado para boton liberado #define FALSE 0 // Estado FALSO #define TRUE 1 // Estado VERDADERO #define Ticker_Rate 1000 // Tiempo del Ticker ////////////////////////////////////////// Definimos las notas notas musicales y su frecuencia. /* +------------------------------------------------------------------------------- | Configuración de Puertos +------------------------------------------------------------------------------- */ DigitalOut verde (LED1); // NC (Green_Led) DigitalOut Led_Monitor (PB_1); // Led monitor de la Tarjeta STM32F103C8 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 /* +------------------------------------------------------------------------------- | Variables Globales de Usuario ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */ /* | Definición de Funciones Prototipo y Rutinas de los Vectores de Interrupción ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */ void Portada(); void Principal(); void Setup(void); /* END definitions */ /* #=============================================================================== | | P R O G R A M A P R I N C I P A L | #=============================================================================== */ int main() { Setup(); // Inicialización del sistema Portada(); Principal(); } /* END main */ /* ................................................................................ : Rutinas de los Vectores de Interrupción ................................................................................ */ /* END Events */ /* ________________________________________________________________________________ | | Funciones Prototipo |_______________________________________________________________________________ */ // Las Funciones Prototipo van aquí ! void Setup() { // 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 { 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: MINIMOS\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 Principal() { { float aux[10],aux1[10],auxx[10],resultado[10],suma,sumat[10],tole[10], tole1,tolefin[10],tolerancia,w,x1[10],xy[10][10]; int grado,h,i,j; terminal.printf("\nCual es el grado de la ecuaci¢n (2 ¢ 3): \n"); grado=terminal.getc(); for(j=0;j<10;j++) { auxx[j]=0; } for(i=0;i<grado;i++) { terminal.printf("\nIngresa la Ecuaci¢n Numero %d \n",i+1); for(j=0;j<grado;j++) { terminal.printf("\nX%d%d= ",i+1,j+1); xy[i][j]=terminal.getc(); } terminal.printf("\nY%d= ",i+1); resultado[i]=terminal.getc(); } terminal.printf("\nLas ecuaciones que ingresaste son:\n"); for(i=0;i<grado;i++) { for(j=0;j<grado;j++) { terminal.printf(" %.0f[X%d]",xy[i][j],j+1); if(j==0) printf("+"); } terminal.printf("=",i+1); terminal.printf("%.0f",resultado[i]); terminal.printf("\n"); } terminal.printf("\n Matriz a resolver:\n"); for(i=0;i<grado;i++) { terminal.printf("\n%c ",179); for(j=0;j<grado;j++) { terminal.printf(" %.0f ",xy[i][j],j+1); } terminal.printf(" %c",179); terminal.printf(" %.0f ",resultado[i]); terminal.printf(" %c",179); } terminal.printf("\nIngresa la Exactitud o Tolerancia: "); tolerancia=terminal.getc(); for(;;) { h=0; do { suma=0; for(i=h;i<h+1;i++) { for(j=0;j<grado;j++) { if(j!=i) { suma+=((xy[i][j]*x1[j])/xy[i][i]); } } } sumat[h]=suma; h++; }while(h<grado); for(i=0,j=grado-1;i<grado;i++,j--) { aux[i]=auxx[j]; } for(i=0;i<grado;i++) { for(j=0;j<grado;j++) { if(i!=j) { auxx[i]=((resultado[i])/xy[i][i])-(sumat[i]); } else{ terminal.printf("INDETEMINA"); } } } for(i=0,j=grado-1;i<grado;i++,j--) { x1[i]=auxx[i]; } for(i=0;i<grado;i++) { tole[i]=0; } for(i=0,j=grado-1;i<grado;i++,j--) { aux1[i]=auxx[j]; } for(i=0;i<grado;i++) { tole[i]=aux1[i]-aux[i]; } int k=0; while(k<grado) { for(i=0;i<grado-1;i++) { if(tole[i]<tole[i+1]) { tole1=tole[i];tole[i]=tole[i+1];tole[i+1]=tole1; } } k++; } for( j=0;j<grado;j++) { tolefin[j]=tole[j]; } w=tolefin[0]; terminal.printf("\n"); for(j=0;j<grado;j++) { terminal.printf("x%d= %f\n",j+1,auxx[j]); } if(fabs(w)<=tolerancia) { terminal.printf("\nResultados en la Iteracion Numero %d \n"); for(j=0;j<grado;j++) { terminal.printf("X%d=%.15f\n",j+1,auxx[j]); } terminal.getc(); break; } } } } /* END routines */ /* END program */ /* END documentation */ /* +-------------------------------------------------------------------------------- | | T H E A N T U L I U S T E A M | Research, Development, Systems Equipment, Support & Spare Parts I n c. | (C) Copyright 1989-2014, All rigths Reserved | | This program is licensed under rules of | THE BEANERS TECHNOLOGIES PROYECT +------------------------------------------------------------------------------- */ /* END Mbed */