Francisco Sarabia / Mbed 2 deprecated STM32F103C8T6_MinimosCuadrados

Dependencies:   mbed

Committer:
franciscos
Date:
Wed Mar 04 00:51:52 2020 +0000
Revision:
0:0b7bc4adc2a7
esime;

Who changed what in which revision?

UserRevisionLine numberNew 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 */