Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:0b7bc4adc2a7, 2020-03-04 (annotated)
- Committer:
- franciscos
- Date:
- Wed Mar 04 00:51:52 2020 +0000
- Revision:
- 0:0b7bc4adc2a7
esime;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
franciscos | 0:0b7bc4adc2a7 | 1 | /* ############################################################################# |
franciscos | 0:0b7bc4adc2a7 | 2 | ** Archivo : main.c |
franciscos | 0:0b7bc4adc2a7 | 3 | ** Proyecto : STM32F103C8_Caratula |
franciscos | 0:0b7bc4adc2a7 | 4 | ** Procesador : STM32F103C8T6 |
franciscos | 0:0b7bc4adc2a7 | 5 | ** Plataforma : Blue Pill |
franciscos | 0:0b7bc4adc2a7 | 6 | ** Herramienta : Mbed Compiler |
franciscos | 0:0b7bc4adc2a7 | 7 | ** Version : Driver 01.01 |
franciscos | 0:0b7bc4adc2a7 | 8 | ** Compilador : GNU C Compiler |
franciscos | 0:0b7bc4adc2a7 | 9 | ** Fecha/Hora : 17-02-2020, 22:53, # CodeGen: 0 |
franciscos | 0:0b7bc4adc2a7 | 10 | ** Descripción : |
franciscos | 0:0b7bc4adc2a7 | 11 | ** Este proyecto hace una carátula para mostrar la presentación |
franciscos | 0:0b7bc4adc2a7 | 12 | ** This module contains user's application code. |
franciscos | 0:0b7bc4adc2a7 | 13 | ** Componentes : GPIO, Timer, etc . |
franciscos | 0:0b7bc4adc2a7 | 14 | ** Configuraciones : Includes, Stacks y Drivers externos |
franciscos | 0:0b7bc4adc2a7 | 15 | ** Autores : |
franciscos | 0:0b7bc4adc2a7 | 16 | ** ATEAM Development Group: |
franciscos | 0:0b7bc4adc2a7 | 17 | ** - Francisco Sarabia López, Antulio Morgado Valle(plantilla) |
franciscos | 0:0b7bc4adc2a7 | 18 | ** |
franciscos | 0:0b7bc4adc2a7 | 19 | ** Versión : Alpha |
franciscos | 0:0b7bc4adc2a7 | 20 | ** Revisión : A |
franciscos | 0:0b7bc4adc2a7 | 21 | ** Release : 0 |
franciscos | 0:0b7bc4adc2a7 | 22 | ** Bugs & Fixes : |
franciscos | 0:0b7bc4adc2a7 | 23 | ** Date : |
franciscos | 0:0b7bc4adc2a7 | 24 | ** |
franciscos | 0:0b7bc4adc2a7 | 25 | ** ###########################################################################*/ |
franciscos | 0:0b7bc4adc2a7 | 26 | /* |
franciscos | 0:0b7bc4adc2a7 | 27 | :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |
franciscos | 0:0b7bc4adc2a7 | 28 | : Includes |
franciscos | 0:0b7bc4adc2a7 | 29 | :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |
franciscos | 0:0b7bc4adc2a7 | 30 | */ |
franciscos | 0:0b7bc4adc2a7 | 31 | #include "stm32f103c8t6.h" |
franciscos | 0:0b7bc4adc2a7 | 32 | #include "mbed.h" |
franciscos | 0:0b7bc4adc2a7 | 33 | #include "Serial.h" |
franciscos | 0:0b7bc4adc2a7 | 34 | //#include "LedRGB.h" |
franciscos | 0:0b7bc4adc2a7 | 35 | //#include "stdio.h" |
franciscos | 0:0b7bc4adc2a7 | 36 | |
franciscos | 0:0b7bc4adc2a7 | 37 | /* |
franciscos | 0:0b7bc4adc2a7 | 38 | :............................................................................... |
franciscos | 0:0b7bc4adc2a7 | 39 | : Definiciones |
franciscos | 0:0b7bc4adc2a7 | 40 | :............................................................................... |
franciscos | 0:0b7bc4adc2a7 | 41 | */ |
franciscos | 0:0b7bc4adc2a7 | 42 | #define on 0 // Estado para boton presionado |
franciscos | 0:0b7bc4adc2a7 | 43 | #define off 1 // Estado para boton sin presionar |
franciscos | 0:0b7bc4adc2a7 | 44 | #define hold 2 // Estado para boton mantenido |
franciscos | 0:0b7bc4adc2a7 | 45 | #define release 3 // Estado para boton liberado |
franciscos | 0:0b7bc4adc2a7 | 46 | #define FALSE 0 // Estado FALSO |
franciscos | 0:0b7bc4adc2a7 | 47 | #define TRUE 1 // Estado VERDADERO |
franciscos | 0:0b7bc4adc2a7 | 48 | #define Ticker_Rate 1000 // Periodo de interrupción Ticker (us) |
franciscos | 0:0b7bc4adc2a7 | 49 | #define Baud_Rate 115200 // Velocidad de Transmisión de la Terminal |
franciscos | 0:0b7bc4adc2a7 | 50 | /* |
franciscos | 0:0b7bc4adc2a7 | 51 | +------------------------------------------------------------------------------- |
franciscos | 0:0b7bc4adc2a7 | 52 | | Configuración de Puertos |
franciscos | 0:0b7bc4adc2a7 | 53 | +------------------------------------------------------------------------------- |
franciscos | 0:0b7bc4adc2a7 | 54 | */ |
franciscos | 0:0b7bc4adc2a7 | 55 | Ticker TimerInt; // Inicializa la Interrupción por Timer |
franciscos | 0:0b7bc4adc2a7 | 56 | DigitalOut led_monitor(LED1); // Inicializa el LED Monitor |
franciscos | 0:0b7bc4adc2a7 | 57 | DigitalOut led_testigo(PB_1); // Inicializa el LED Testigo |
franciscos | 0:0b7bc4adc2a7 | 58 | PwmOut led_pwm(PA_7); // Inicializa el LED PWM |
franciscos | 0:0b7bc4adc2a7 | 59 | AnalogIn sensor1(PB_0); // Inicializa Canal Analógico para sensor 1 |
franciscos | 0:0b7bc4adc2a7 | 60 | Serial terminal(PA_2, PA_3); // Inicializa la Comunicación Serial a la PC |
franciscos | 0:0b7bc4adc2a7 | 61 | /* |
franciscos | 0:0b7bc4adc2a7 | 62 | +------------------------------------------------------------------------------- |
franciscos | 0:0b7bc4adc2a7 | 63 | | Variables Globales de Usuario |
franciscos | 0:0b7bc4adc2a7 | 64 | +------------------------------------------------------------------------------- |
franciscos | 0:0b7bc4adc2a7 | 65 | */ |
franciscos | 0:0b7bc4adc2a7 | 66 | uint16_t Rate=Ticker_Rate/2; // Velocidad de barrido (500us = 0.5ms) |
franciscos | 0:0b7bc4adc2a7 | 67 | uint16_t counter=250; // Cuenta inicial de 250us |
franciscos | 0:0b7bc4adc2a7 | 68 | /* END variables */ |
franciscos | 0:0b7bc4adc2a7 | 69 | |
franciscos | 0:0b7bc4adc2a7 | 70 | /* |
franciscos | 0:0b7bc4adc2a7 | 71 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
franciscos | 0:0b7bc4adc2a7 | 72 | | Definición de Funciones Prototipo y Rutinas de los Vectores de Interrupción |
franciscos | 0:0b7bc4adc2a7 | 73 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
franciscos | 0:0b7bc4adc2a7 | 74 | */ |
franciscos | 0:0b7bc4adc2a7 | 75 | // Las Definiciones de Funciones Prototipo |
franciscos | 0:0b7bc4adc2a7 | 76 | // y Apuntadores a Vectores de Interrupciones van aquí ! |
franciscos | 0:0b7bc4adc2a7 | 77 | void TimerInt_OnInterrupt(void); |
franciscos | 0:0b7bc4adc2a7 | 78 | void Blinking_Led(void); |
franciscos | 0:0b7bc4adc2a7 | 79 | void PideDatos(int *Dat, int *Ord,float Val[][10]); |
franciscos | 0:0b7bc4adc2a7 | 80 | float Potencia(int n, float Num); |
franciscos | 0:0b7bc4adc2a7 | 81 | void PreparaSistema(int Ord, int Dat, float Sist[][10], float Val[][10]); |
franciscos | 0:0b7bc4adc2a7 | 82 | void ResuelveGauss(int Dim, float Sist[][10]); |
franciscos | 0:0b7bc4adc2a7 | 83 | void ImprimeDatos(int Dim, float Sist[][10]); |
franciscos | 0:0b7bc4adc2a7 | 84 | |
franciscos | 0:0b7bc4adc2a7 | 85 | /* END prototypes */ |
franciscos | 0:0b7bc4adc2a7 | 86 | |
franciscos | 0:0b7bc4adc2a7 | 87 | /* END definitions */ |
franciscos | 0:0b7bc4adc2a7 | 88 | /* |
franciscos | 0:0b7bc4adc2a7 | 89 | #=============================================================================== |
franciscos | 0:0b7bc4adc2a7 | 90 | | |
franciscos | 0:0b7bc4adc2a7 | 91 | | P R O G R A M A P R I N C I P A L |
franciscos | 0:0b7bc4adc2a7 | 92 | | |
franciscos | 0:0b7bc4adc2a7 | 93 | #=============================================================================== |
franciscos | 0:0b7bc4adc2a7 | 94 | */ |
franciscos | 0:0b7bc4adc2a7 | 95 | int main() |
franciscos | 0:0b7bc4adc2a7 | 96 | { // Inicialización de variables, puertos e interrupciones |
franciscos | 0:0b7bc4adc2a7 | 97 | confSysClock(); // Inicialización del Sistema, Configure system clock (72MHz HSE clock, 48MHz USB clock) |
franciscos | 0:0b7bc4adc2a7 | 98 | TimerInt.attach_us(&TimerInt_OnInterrupt, Ticker_Rate); // Le asigna el periodo de interrupción de 1ms (Ticker_Rate=1000) |
franciscos | 0:0b7bc4adc2a7 | 99 | |
franciscos | 0:0b7bc4adc2a7 | 100 | terminal.baud(Baud_Rate); // Se configura la velocidad de transmisión e inicia la comunicación serial. |
franciscos | 0:0b7bc4adc2a7 | 101 | terminal.printf(" System is Wake Up!.\n\r"); |
franciscos | 0:0b7bc4adc2a7 | 102 | |
franciscos | 0:0b7bc4adc2a7 | 103 | while (true) // El Lazo del Programa principal está aquí !!! |
franciscos | 0:0b7bc4adc2a7 | 104 | { |
franciscos | 0:0b7bc4adc2a7 | 105 | Blinking_Led(); // Parapadeo del LED por Software |
franciscos | 0:0b7bc4adc2a7 | 106 | led_pwm = sensor1.read(); // El Led se encenderá de acuerdo al valor del sensor |
franciscos | 0:0b7bc4adc2a7 | 107 | terminal.printf("INSTITUTO POLITECNICO NACIONAL \r\n"); |
franciscos | 0:0b7bc4adc2a7 | 108 | terminal.printf("\n EEEEEEE SSSS IIIIIII M M EEEEEEE \r\n"); |
franciscos | 0:0b7bc4adc2a7 | 109 | terminal.printf( " E S I M M M M E \r\n"); |
franciscos | 0:0b7bc4adc2a7 | 110 | terminal.printf( " EEEEEEE SSSS I M MM M EEEEEEE \r\n"); |
franciscos | 0:0b7bc4adc2a7 | 111 | terminal.printf( " E S I M M E \r\n"); |
franciscos | 0:0b7bc4adc2a7 | 112 | terminal.printf( " EEEEEEE SSSS IIIIIII M M EEEEEEE \r\n"); |
franciscos | 0:0b7bc4adc2a7 | 113 | terminal.printf( "\n Francisco Sarabia Lopez\r\n"); |
franciscos | 0:0b7bc4adc2a7 | 114 | terminal.printf( "\n Ingenieria en Comunicaciones y Electronica\r\n"); |
franciscos | 0:0b7bc4adc2a7 | 115 | |
franciscos | 0:0b7bc4adc2a7 | 116 | int Datos,Orden,i; |
franciscos | 0:0b7bc4adc2a7 | 117 | float Valores[2][10]; |
franciscos | 0:0b7bc4adc2a7 | 118 | float Sistema[10][10]; |
franciscos | 0:0b7bc4adc2a7 | 119 | |
franciscos | 0:0b7bc4adc2a7 | 120 | PideDatos(&Datos,&Orden,Valores); |
franciscos | 0:0b7bc4adc2a7 | 121 | |
franciscos | 0:0b7bc4adc2a7 | 122 | PreparaSistema(Orden,Datos,Sistema,Valores); |
franciscos | 0:0b7bc4adc2a7 | 123 | printf("\n\n El sistema a resolver es el siguiente:"); |
franciscos | 0:0b7bc4adc2a7 | 124 | ImprimeDatos(Orden,Sistema); |
franciscos | 0:0b7bc4adc2a7 | 125 | ResuelveGauss(Orden,Sistema); |
franciscos | 0:0b7bc4adc2a7 | 126 | printf("\n\n El sistema resuelto:"); |
franciscos | 0:0b7bc4adc2a7 | 127 | ImprimeDatos(Orden,Sistema); |
franciscos | 0:0b7bc4adc2a7 | 128 | printf("\n\n La Ecuacion del Polinomio ajustado por minimos Cuadrados\n\n:"); |
franciscos | 0:0b7bc4adc2a7 | 129 | for(i=1;i<=Orden;i++) |
franciscos | 0:0b7bc4adc2a7 | 130 | { |
franciscos | 0:0b7bc4adc2a7 | 131 | printf(" + \t(%.2f)X^%d",Sistema[i][Orden+1],i-1); |
franciscos | 0:0b7bc4adc2a7 | 132 | } |
franciscos | 0:0b7bc4adc2a7 | 133 | return 0; |
franciscos | 0:0b7bc4adc2a7 | 134 | } |
franciscos | 0:0b7bc4adc2a7 | 135 | } |
franciscos | 0:0b7bc4adc2a7 | 136 | /* END main */ |
franciscos | 0:0b7bc4adc2a7 | 137 | |
franciscos | 0:0b7bc4adc2a7 | 138 | /* |
franciscos | 0:0b7bc4adc2a7 | 139 | ................................................................................ |
franciscos | 0:0b7bc4adc2a7 | 140 | : Rutinas de los Vectores de Interrupción |
franciscos | 0:0b7bc4adc2a7 | 141 | ................................................................................ |
franciscos | 0:0b7bc4adc2a7 | 142 | */ |
franciscos | 0:0b7bc4adc2a7 | 143 | // Las Rutinas de Atención a Interrupciones van aquí ! |
franciscos | 0:0b7bc4adc2a7 | 144 | void TimerInt_OnInterrupt() // Rutina de Atención al Ticker |
franciscos | 0:0b7bc4adc2a7 | 145 | { |
franciscos | 0:0b7bc4adc2a7 | 146 | |
franciscos | 0:0b7bc4adc2a7 | 147 | } |
franciscos | 0:0b7bc4adc2a7 | 148 | /* END Events */ |
franciscos | 0:0b7bc4adc2a7 | 149 | /* |
franciscos | 0:0b7bc4adc2a7 | 150 | ________________________________________________________________________________ |
franciscos | 0:0b7bc4adc2a7 | 151 | | |
franciscos | 0:0b7bc4adc2a7 | 152 | | Funciones Prototipo |
franciscos | 0:0b7bc4adc2a7 | 153 | |_______________________________________________________________________________ |
franciscos | 0:0b7bc4adc2a7 | 154 | */ |
franciscos | 0:0b7bc4adc2a7 | 155 | // Las Funciones Prototipo van aquí ! |
franciscos | 0:0b7bc4adc2a7 | 156 | void Blinking_Led() // Software Blinking routine for LED |
franciscos | 0:0b7bc4adc2a7 | 157 | { |
franciscos | 0:0b7bc4adc2a7 | 158 | // The on-board LED is connected, via a resistor, to +3.3V (not to GND). |
franciscos | 0:0b7bc4adc2a7 | 159 | // So to turn the LED on or off we have to set it to 0 or 1 respectively |
franciscos | 0:0b7bc4adc2a7 | 160 | led_testigo = 1; // turn the LED on (using Positive Logic) |
franciscos | 0:0b7bc4adc2a7 | 161 | wait_ms(200); // 200 millisecond |
franciscos | 0:0b7bc4adc2a7 | 162 | led_testigo = 0; // turn the LED off (using Positive Logic) |
franciscos | 0:0b7bc4adc2a7 | 163 | wait_ms(1000); // 1000 millisecond |
franciscos | 0:0b7bc4adc2a7 | 164 | } |
franciscos | 0:0b7bc4adc2a7 | 165 | |
franciscos | 0:0b7bc4adc2a7 | 166 | void PideDatos(int *Dat, int *Ord,float Val[][10]) |
franciscos | 0:0b7bc4adc2a7 | 167 | { |
franciscos | 0:0b7bc4adc2a7 | 168 | int i,o; |
franciscos | 0:0b7bc4adc2a7 | 169 | printf("\n Introduce el numero de datos o puntos: "); |
franciscos | 0:0b7bc4adc2a7 | 170 | scanf("%d",&*Dat); |
franciscos | 0:0b7bc4adc2a7 | 171 | printf("\n\n Introce los valores de cada punto\n"); |
franciscos | 0:0b7bc4adc2a7 | 172 | for(i=0;i<*Dat;i++) |
franciscos | 0:0b7bc4adc2a7 | 173 | { |
franciscos | 0:0b7bc4adc2a7 | 174 | printf(" -Valores del Punto %d:\n",i+1); |
franciscos | 0:0b7bc4adc2a7 | 175 | printf(" X%d: ",i+1); |
franciscos | 0:0b7bc4adc2a7 | 176 | scanf("%f",&Val[0][i+1]); |
franciscos | 0:0b7bc4adc2a7 | 177 | printf(" Y%d: ",i+1); |
franciscos | 0:0b7bc4adc2a7 | 178 | scanf("%f",&Val[1][i+1]); |
franciscos | 0:0b7bc4adc2a7 | 179 | } |
franciscos | 0:0b7bc4adc2a7 | 180 | printf("\n\n Introduce el orden del polinomio: "); |
franciscos | 0:0b7bc4adc2a7 | 181 | scanf("%d",&o); |
franciscos | 0:0b7bc4adc2a7 | 182 | *Ord=o+1; |
franciscos | 0:0b7bc4adc2a7 | 183 | } |
franciscos | 0:0b7bc4adc2a7 | 184 | |
franciscos | 0:0b7bc4adc2a7 | 185 | float Potencia(int n, float Num) |
franciscos | 0:0b7bc4adc2a7 | 186 | { |
franciscos | 0:0b7bc4adc2a7 | 187 | int i; |
franciscos | 0:0b7bc4adc2a7 | 188 | float res; |
franciscos | 0:0b7bc4adc2a7 | 189 | |
franciscos | 0:0b7bc4adc2a7 | 190 | res=1; |
franciscos | 0:0b7bc4adc2a7 | 191 | for(i=1;i<=n;i++) |
franciscos | 0:0b7bc4adc2a7 | 192 | { |
franciscos | 0:0b7bc4adc2a7 | 193 | res=res*Num; |
franciscos | 0:0b7bc4adc2a7 | 194 | } |
franciscos | 0:0b7bc4adc2a7 | 195 | return res; |
franciscos | 0:0b7bc4adc2a7 | 196 | } |
franciscos | 0:0b7bc4adc2a7 | 197 | |
franciscos | 0:0b7bc4adc2a7 | 198 | void PreparaSistema(int Ord, int Dat, float Sist[][10], float Val[][10]) |
franciscos | 0:0b7bc4adc2a7 | 199 | { |
franciscos | 0:0b7bc4adc2a7 | 200 | int i,j,k,Exp; |
franciscos | 0:0b7bc4adc2a7 | 201 | float suma,termino; |
franciscos | 0:0b7bc4adc2a7 | 202 | |
franciscos | 0:0b7bc4adc2a7 | 203 | for(i=1;i<=Ord;i++) |
franciscos | 0:0b7bc4adc2a7 | 204 | { |
franciscos | 0:0b7bc4adc2a7 | 205 | for(j=1;j<=Ord;j++) |
franciscos | 0:0b7bc4adc2a7 | 206 | { |
franciscos | 0:0b7bc4adc2a7 | 207 | suma=0; |
franciscos | 0:0b7bc4adc2a7 | 208 | Exp=i+j-2; |
franciscos | 0:0b7bc4adc2a7 | 209 | |
franciscos | 0:0b7bc4adc2a7 | 210 | for(k=1;k<=Dat;k++) |
franciscos | 0:0b7bc4adc2a7 | 211 | { |
franciscos | 0:0b7bc4adc2a7 | 212 | termino=Val[0][k]; |
franciscos | 0:0b7bc4adc2a7 | 213 | suma=suma+Potencia(Exp,termino); |
franciscos | 0:0b7bc4adc2a7 | 214 | } |
franciscos | 0:0b7bc4adc2a7 | 215 | Sist[i][j]=suma; |
franciscos | 0:0b7bc4adc2a7 | 216 | } |
franciscos | 0:0b7bc4adc2a7 | 217 | |
franciscos | 0:0b7bc4adc2a7 | 218 | } |
franciscos | 0:0b7bc4adc2a7 | 219 | for(i=1;i<=Ord;i++) |
franciscos | 0:0b7bc4adc2a7 | 220 | { |
franciscos | 0:0b7bc4adc2a7 | 221 | suma=0; |
franciscos | 0:0b7bc4adc2a7 | 222 | Exp=i-1; |
franciscos | 0:0b7bc4adc2a7 | 223 | |
franciscos | 0:0b7bc4adc2a7 | 224 | for(k=1;k<=Dat;k++) |
franciscos | 0:0b7bc4adc2a7 | 225 | { |
franciscos | 0:0b7bc4adc2a7 | 226 | termino=Val[0][k]; |
franciscos | 0:0b7bc4adc2a7 | 227 | suma=suma+Val[1][k]*Potencia(Exp,termino); |
franciscos | 0:0b7bc4adc2a7 | 228 | } |
franciscos | 0:0b7bc4adc2a7 | 229 | Sist[i][Ord+1]=suma; |
franciscos | 0:0b7bc4adc2a7 | 230 | } |
franciscos | 0:0b7bc4adc2a7 | 231 | } |
franciscos | 0:0b7bc4adc2a7 | 232 | |
franciscos | 0:0b7bc4adc2a7 | 233 | void ResuelveGauss(int Dim, float Sist[][10]) |
franciscos | 0:0b7bc4adc2a7 | 234 | { |
franciscos | 0:0b7bc4adc2a7 | 235 | int NoCero,Col,C1,C2,A; |
franciscos | 0:0b7bc4adc2a7 | 236 | float Pivote,V1; |
franciscos | 0:0b7bc4adc2a7 | 237 | |
franciscos | 0:0b7bc4adc2a7 | 238 | for(Col=1;Col<=Dim;Col++) |
franciscos | 0:0b7bc4adc2a7 | 239 | { |
franciscos | 0:0b7bc4adc2a7 | 240 | NoCero=0;A=Col; |
franciscos | 0:0b7bc4adc2a7 | 241 | while(NoCero==0) |
franciscos | 0:0b7bc4adc2a7 | 242 | { |
franciscos | 0:0b7bc4adc2a7 | 243 | if(Sist[A][Col]!=0) |
franciscos | 0:0b7bc4adc2a7 | 244 | { |
franciscos | 0:0b7bc4adc2a7 | 245 | NoCero=1; |
franciscos | 0:0b7bc4adc2a7 | 246 | } |
franciscos | 0:0b7bc4adc2a7 | 247 | else |
franciscos | 0:0b7bc4adc2a7 | 248 | { |
franciscos | 0:0b7bc4adc2a7 | 249 | A++; |
franciscos | 0:0b7bc4adc2a7 | 250 | } |
franciscos | 0:0b7bc4adc2a7 | 251 | Pivote=Sist[A][Col]; |
franciscos | 0:0b7bc4adc2a7 | 252 | for(C1=1;C1<=(Dim+1);C1++) |
franciscos | 0:0b7bc4adc2a7 | 253 | { |
franciscos | 0:0b7bc4adc2a7 | 254 | V1=Sist[A][C1]; |
franciscos | 0:0b7bc4adc2a7 | 255 | Sist[A][C1]=Sist[Col][C1]; |
franciscos | 0:0b7bc4adc2a7 | 256 | Sist[Col][C1]=V1/Pivote; |
franciscos | 0:0b7bc4adc2a7 | 257 | } |
franciscos | 0:0b7bc4adc2a7 | 258 | for(C2=Col+1;C2<=Dim;C2++) |
franciscos | 0:0b7bc4adc2a7 | 259 | { |
franciscos | 0:0b7bc4adc2a7 | 260 | V1=Sist[C2][Col]; |
franciscos | 0:0b7bc4adc2a7 | 261 | for(C1=Col;C1<=(Dim+1);C1++) |
franciscos | 0:0b7bc4adc2a7 | 262 | { |
franciscos | 0:0b7bc4adc2a7 | 263 | Sist[C2][C1]=Sist[C2][C1]-V1*Sist[Col][C1]; |
franciscos | 0:0b7bc4adc2a7 | 264 | } |
franciscos | 0:0b7bc4adc2a7 | 265 | } |
franciscos | 0:0b7bc4adc2a7 | 266 | } |
franciscos | 0:0b7bc4adc2a7 | 267 | } |
franciscos | 0:0b7bc4adc2a7 | 268 | for(Col=Dim;Col>=1;Col--) |
franciscos | 0:0b7bc4adc2a7 | 269 | { |
franciscos | 0:0b7bc4adc2a7 | 270 | for(C1=(Col-1);C1>=1;C1--) |
franciscos | 0:0b7bc4adc2a7 | 271 | { |
franciscos | 0:0b7bc4adc2a7 | 272 | Sist[C1][Dim+1]=Sist[C1][Dim+1]-Sist[C1][Col]*Sist[Col][Dim+1]; |
franciscos | 0:0b7bc4adc2a7 | 273 | Sist[C1][Col]=0; |
franciscos | 0:0b7bc4adc2a7 | 274 | } |
franciscos | 0:0b7bc4adc2a7 | 275 | |
franciscos | 0:0b7bc4adc2a7 | 276 | } |
franciscos | 0:0b7bc4adc2a7 | 277 | } |
franciscos | 0:0b7bc4adc2a7 | 278 | |
franciscos | 0:0b7bc4adc2a7 | 279 | void ImprimeDatos(int Dim, float Sist[][10]) |
franciscos | 0:0b7bc4adc2a7 | 280 | { |
franciscos | 0:0b7bc4adc2a7 | 281 | int i,j; |
franciscos | 0:0b7bc4adc2a7 | 282 | |
franciscos | 0:0b7bc4adc2a7 | 283 | printf("\n\n"); |
franciscos | 0:0b7bc4adc2a7 | 284 | for(i=1;i<=Dim;i++) |
franciscos | 0:0b7bc4adc2a7 | 285 | { |
franciscos | 0:0b7bc4adc2a7 | 286 | for(j=1;j<=(Dim+1);j++) |
franciscos | 0:0b7bc4adc2a7 | 287 | { |
franciscos | 0:0b7bc4adc2a7 | 288 | printf("\t%.2f",Sist[i][j]); |
franciscos | 0:0b7bc4adc2a7 | 289 | if(j==Dim) |
franciscos | 0:0b7bc4adc2a7 | 290 | { |
franciscos | 0:0b7bc4adc2a7 | 291 | printf(" |"); |
franciscos | 0:0b7bc4adc2a7 | 292 | } |
franciscos | 0:0b7bc4adc2a7 | 293 | } |
franciscos | 0:0b7bc4adc2a7 | 294 | printf("\n"); |
franciscos | 0:0b7bc4adc2a7 | 295 | } |
franciscos | 0:0b7bc4adc2a7 | 296 | printf("\n\n"); |
franciscos | 0:0b7bc4adc2a7 | 297 | } |
franciscos | 0:0b7bc4adc2a7 | 298 | |
franciscos | 0:0b7bc4adc2a7 | 299 | /* END functions */ |
franciscos | 0:0b7bc4adc2a7 | 300 | |
franciscos | 0:0b7bc4adc2a7 | 301 | /* END program */ |
franciscos | 0:0b7bc4adc2a7 | 302 | |
franciscos | 0:0b7bc4adc2a7 | 303 | /*+----------------------------------------------------------------------------- |
franciscos | 0:0b7bc4adc2a7 | 304 | *+ La documentación va aquí!: |
franciscos | 0:0b7bc4adc2a7 | 305 | *+----------------------------------------------------------------------------- |
franciscos | 0:0b7bc4adc2a7 | 306 | *+ |
franciscos | 0:0b7bc4adc2a7 | 307 | *+ |
franciscos | 0:0b7bc4adc2a7 | 308 | *+----------------------------------------------------------------------------* |
franciscos | 0:0b7bc4adc2a7 | 309 | *+ |
franciscos | 0:0b7bc4adc2a7 | 310 | *+ Powered by |
franciscos | 0:0b7bc4adc2a7 | 311 | *+ |
franciscos | 0:0b7bc4adc2a7 | 312 | *+ T H E A N T U L I U ' S T E A M R&D Unltd |
franciscos | 0:0b7bc4adc2a7 | 313 | *+ |
franciscos | 0:0b7bc4adc2a7 | 314 | *+ Research, Development, Systems, Equipment, Support & Spare Parts. |
franciscos | 0:0b7bc4adc2a7 | 315 | *+ (C) Copyright 1989-2019, All Rights Reserved |
franciscos | 0:0b7bc4adc2a7 | 316 | *+ |
franciscos | 0:0b7bc4adc2a7 | 317 | *+ Welcome to The Beaners Proyect Community! |
franciscos | 0:0b7bc4adc2a7 | 318 | *+----------------------------------------------------------------------------*/ |
franciscos | 0:0b7bc4adc2a7 | 319 | |
franciscos | 0:0b7bc4adc2a7 | 320 | /* END documentation */ |
franciscos | 0:0b7bc4adc2a7 | 321 | |
franciscos | 0:0b7bc4adc2a7 | 322 | /* END Mbed */ |