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
- Committer:
- igalsalazars
- Date:
- 2022-03-11
- Revision:
- 0:53bf87d68a12
File content as of revision 0:53bf87d68a12:
/* ########################################################################### ** Archivo : main.c ** Proyecto : STM32-F103C8_Reloj ** Procesador : STM32F103C8T6 ** Plataforma : Blue Pill ** Herramienta : Mbed ** Plataforma : Blue Pill ** Herramienta : Mbed Compiler ** Compilador : Mbed Online C Compiler ** Version : Mbed-OS 5.15.0 ** Fecha/Hora :07-12-2021, 16:03 ** Descripción :Reloj fechador automatico con varios ajustes ** Componentes : GPIO, Timer, Buzzer. ** Configuraciones : Includes, Stacks y Drivers externos ** Autores :Salazar Servin Igal ** ** ** Versión : Beta ** Revisión : A ** Release : 0 ** Bugs & Fixes : ** Date : 00/00/2021 ** ** ** ###########################################################################*/ /* :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: : Includes :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */ #include "stm32f103c8t6.h" #include "mbed.h" #include "Serial.h" #include "iostream" #include "stdio.h" /* :............................................................................... : Definiciones :............................................................................... */ #define FALSE 0 // Estado FALSO #define TRUE 1 // Estado VERDADERO #define Ticker_Rate 1000 // Periodo de interrupción (us)=1ms #define Baud_Rate 115200 // Velocidad de Transmisión (Bauds) #define Inicio_segundos 10 #define Inicio_minutos 16 #define Inicio_horas 16 #define Inicio_dia 12 #define Inicio_mes 12 #define Inicio_anio 2021 #define inicio_dia 1 #define Contador 0 #define Cuenta_regresiva 364 #define Semana 1 #define TDC 1 #define AMPM 0 #define FormatoH 1 #define Verano 1 /* +------------------------------------------------------------------------------- | Configuración de Puertos +------------------------------------------------------------------------------- */ //confSysClock(); // Configure system clock (72MHz HSE clock, 48MHz USB clock) Ticker TimerInt; // Inicializa la Interrupción por Timer DigitalOut led_monitor(LED1); // Inicializa el LED Monitor (Interno) DigitalOut led_testigo(PB_1); // Inicializa el LED Testigo (Externo) PwmOut servo(PA_7); // Inicializa el PWM AnalogIn sensor1 (PB_0); // Inicializa Canal Analógico para sensor 1 Serial terminal(PA_2, PA_3); // Inicializa la Comunicación Serial a la PC /* +------------------------------------------------------------------------------- | Variables Globales de Usuario +------------------------------------------------------------------------------- */ char Opcion; bool Bandera1,Bandera2= TDC,Bandera3= FormatoH,Bandera4= AMPM,Bandera5=Verano; /*Bandera Num= BN B1=Año bisiesto ----->> 1=año bisiesto 0=año no bisiesto B2=Tipo de calendario ----->> tipo de calendario 1=julioano 0=gregoriano B3=FORMATO DE 12 O 24 HRS ----->> formato de 0=24hrs 1=12 horas AM/PM B4=Formato de la hora AM-PM ----->> inicio de medio dia 0=am 1=pm B5=Cambio de horario de verano ----->> Cambia De Horario 0=horario de verana 1=horario de invierno */ int8_t dia= inicio_dia,Dia= Inicio_dia,Mes= Inicio_mes,SemanaN= Semana; /* dia=inicio_dia -->>inicializa la variable a un valor definido de 1-30 o 31 Dia= Inicio_dia -->>inicializa la variable 0=lunes 1=martes 2=miercoles 3=jueves 4=viernes 5=sabado 6=domingo Mes=Inicio_Mes -->>inicializa la variable a un valor definido de 1-12 SemanaN -->>Auxiliar para saber el numero de semanas transcurridas */ uint8_t Segundos= Inicio_segundos ,Minutos= Inicio_minutos,Horas= Inicio_horas; /* Segundos= Inicio_segundos -->> Inicializamos los segundo [0-60] Minutos= Inicio_minutos -->> Inicializamos los minutos [0-60] Horas= Inicio_horas -->> Inicializamos las horas [1-24 o 1-12]segun el formato */ uint16_t Anio= Inicio_anio,DiasT= Contador,DiasF= Cuenta_regresiva ; /* Anio= Inicio_anio -->> Inicializamos la variable de años DiasT= Contador -->> Contador que utilizartemos para ver los dias que han pasado desde 1-365 o 1-366 DiasF= Cuenta_regresiva -->> Cntador que utilizartemos para ver los dias que han pasado desde 365- o 366-1 */ string MES[12]={"ENERO","FEBRERO","MARZO","ABRIL","MAYO","JUNIO","JULIO","AGOSTO","SEPTIEMBRE","OCTUBRE","NOVIEMBRE","DICIEMBRE"}; string DIA[7]={"LUNES","MARTES","MIERCOLES","JUEVES","VIERNES","SABADO","DOMINGO"}; /* END variables */ /* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | Definición de Funciones Prototipo y Rutinas de los Vectores de Interrupción ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */ // Las Definiciones de Funciones Prototipo // y Apuntadores a Vectores de Interrupciones van aquí ! void clear_screen(void); void Portada(void); void Reloj(void); void Fecha(void); void Imprimir_reloj(void); void Imprimir_fecha(void); void Menu(void); void Cont(void); void reg(void); void Horario_Invierno_Verano(void); void Config_Hora(); void Config_Fecha(); /* END prototypes */ /* END definitions */ /* #=============================================================================== | | P R O G R A M A P R I N C I P A L | #=============================================================================== */ int main() { terminal.baud(Baud_Rate); Portada(); while(1) { while(!terminal.readable()) { clear_screen(); Reloj(); Fecha(); Imprimir_reloj(); Imprimir_fecha(); wait(1); } terminal.getc(); Menu(); } } /*----------------------------------------------------------------------------------------------------*/ void Menu() { clear_screen(); terminal.printf("\n\n\r\t\t ------------------MENU------------------"); terminal.printf("\n\n\r\t\t | 1)Configuracion Hora |"); terminal.printf("\n\n\r\t\t | 2)Configuracion fecha |"); terminal.printf("\n\n\r\t\t | 3)Configuracion de horario |"); terminal.printf("\n\n\r\t\t | 4)Retornar |"); terminal.printf("\n\n\r\t\t ------------------\e[0;37;41mIPN\e[0m ------------------"); Opcion = terminal.getc(); if(Opcion=='1')Config_Hora(); if(Opcion=='2')Config_Fecha(); if(Opcion=='3')Horario_Invierno_Verano(); } /*----------------------------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------------------------------*/ void Portada() { clear_screen(); terminal.printf ("\e[0;30;42m100110010 00110000 00110001 00111001 00110011 00110101 00110000 00110010 00110101 00110110\e[0m\n\r"); terminal.printf ("\e[0;30;42m \e[0m\r \e[0;30;42m \e[0m\r"); terminal.printf ("\e[0;30;42m \e[0m\e[1;37;41m\t\t\t Instituto Politecnico Nacional \e[0m\n\r"); terminal.printf ("\e[0;30;42m \e[0m\r \e[0;30;42m \e[0m\r"); terminal.printf ("\e[0;30;42m \e[0m\e[1;37;42m\t\t ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA \e[0m\n\r"); terminal.printf ("\e[0;30;42m \e[0m\r \e[0;30;42m \e[0m\r"); terminal.printf ("\e[0;30;42m \e[0m\r \e[0;30;42m \e[0m\r"); terminal.printf ("\e[0;30;42m \e[0m\e[1;37;43m\t\t\t\t Salazar Servin Igal \e[0m\n\r"); terminal.printf ("\e[0;30;42m \e[0m\r \e[0;30;42m \e[0m\r"); terminal.printf ("\e[0;30;42m \e[0m\e[1;37;45m\t\t\t\t\t 4CV6 \e[0m\n\r"); terminal.printf ("\e[0;30;42m \e[0m\r \e[0;30;42m \e[0m\r"); terminal.printf ("\e[0;30;42m \e[0m\r \e[0;30;42m \e[0m\r"); terminal.printf ("\e[0;30;42m \e[0m\e[1;37;46m\t\t\t\t Analisis Numerico \e[0m\n\r"); terminal.printf ("\e[0;30;42m \e[0m\r \e[0;30;42m \e[0m\r"); terminal.printf ("\e[0;30;42m100110010 00110000 00110001 00111001 00110011 00110101 00110000 00110010 00110101 00110110\e[0m\n\r"); wait(5); terminal.printf ("\e[0;30;42m::: ::: ::: ::: ::: ::: ::. f#tW ::: :#E#L :: ::: ::: ::: ::: ::: ::. : \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: ::: ::: ::: ::: ::: ::: ,,:, ::: :,,,::: ::: ::: ::: ::: ::: ::. : \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: .:: ::: ::: ::: ::: :: ,,,,,K ::: #;,,,::: ::: ::: .:. ::: ::: ::: : \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: :: ::: ::: :: ::: ::: K,,,,,,.: :: :,,,,, ::: ::: :: ::: .:: :: ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: :: ::: ::: :: ::: ::: #:,,,,,#: ::#,,,,,, ::: ::: :: ::: .:: :: ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: :: .:: ::: :. ,f. ::: #,,,,,:.: ::t,,,,,,: ::: , tL :: ::: ::: :: ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::: ::: ::: ::: ,t,,,:K.: ::#,,,,,,: ::: :,,,,,, : ::.#,,,,# ::: ::: ::: ::. : \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::: ::: ::: ::: t,,,,,,,: ::W,,,,,,, ::: ;,,,,,: : :.f,,,,,, ::: ::: ::: ::. : \e[0m\n\r"); terminal.printf ("\e[0;30;42m :: .:: .:: .:: ,,,,,, . .: ,,,,,,, ::. f,,,,,,.:: . .,,,,:: .:: .:: ::: :. : \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: :: ::: ::: :: ,,,,,,..:: ,,,,,,,:::iW,,,,,,K ::: ,,,,,,;:: ::: .:: :: ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: :: ::: ::: :: K,,,,,,:#:: #,,,,,,,,,,::,,,,,,f :::#,,,,,,,#.: ::: .:: :: ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::. .:: .:: .:: .j,,,,,,,: : #i,,,,,,,,,,,,,,,,,,,Lj .,,,,,,, .:: .:: .:: .:. : \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::: ::: ::: ::: :.,,,,,,,, tE:,,,:,::,::.:,,,,,,,,,,,;E ,,,,,,,j: ::: ::: ::: ::. : \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::: ::: ::: ::: :.,:,,,,,,,,,,,,.#E :,;,,,,,,:;#j:,,,,,,,,,,,,, : ::: ::: ::: ::. : \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: :: .:: ##:: :: i:,,,,,,,,.#.;,,,,..,ii..:,:,,:LD.,,,,,,,,,K :. :: D: ::: :: ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: :: ::: f,,,t. :: . ,,,,,;;G,,,.G#,:,,,,,,,:.t# ,,,.#..,,,,,: :: ff,,: ,:: :: ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: :: ::: :,,:::W :: :#,,,,:;,,:Dt,,,,,,,,,,,,,,,:, #:,::#:,,,,# :: t,,,,:;::: :: ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m... t############:,:. W#######W#######,,,,W##WK#,,,,#WKEEG #.,,#:,.WW### G.,;############ :.: . \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::: LGGGGGGGGGGGG,,,:jGGGGGGGGGGGGGGGG,,,,#GGGG#,,,,LGGGGG.,.#,,:.KGGGGGf:,,,GGGGGGGGGGGGE,:: : \e[0m\n\r"); terminal.printf ("\e[0;30;42m :::#GGGGGGGGGGGGG,,,, GGGGGGGGGGGGGGGG,,,,#GGGG#,,,,LGGGGGW,:,G.:EGGGGGG ,,,,GGGGGGGGGGGGGW.. : \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: LGGGGGGGGGGGGG,,,,:GGGGGGGGGGGGGGGG,,,,#GGGG#,,,,LGGGGGG:,,:.EGGGGGGG ,,,,GGGGGGGGGGGGGL ::. \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: EGGGGGGGGGGGGGG,,,,:GGGGGGGGGGGGGGGG,:,;#GGGG#,,:,LGGGGGGL:,:,WGGGGGGG ,,,,GGGGGGGGGGGGGG# ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: GGGGGW#######ED,,,,:GGGGD###########W #GGGG#,,: fGGGGGGGW,,KGGGGGGGG.,,,,GGGGG#########W ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m .#GGGGL. .:: .:,,,,:GGGGD,,,,,,,:f; :::#GGGG#,,#:LGGGGGGGGD.GGGGGGGGG.,,,,GGGGG .:: ::. : \e[0m\n\r"); terminal.printf ("\e[0;30;42m GGGGG, . #::,.GGGGG::::::,i.. :.:#GGGG#,,#:GGGGGGGGGGDGGGGGGGGG:,,:#GGGGG . : \e[0m\n\r"); terminal.printf ("\e[0;30;42m #GGGGGGGGGGGGGGGG,,,,KGGGGGGGGGGGGGGGG .:.#GGGG#,,#.GGGGGGGGGGGGGGGGGGGGi,,.:GGGGGGGGGGGGGGGGW : \e[0m\n\r"); terminal.printf ("\e[0;30;42m:::LGGGGGGGGGGGGGGGGt,,K:GGGGGGGGGGGGGGGG: #GGGG#,,# LGGGGGGGGGGGGGGGGGGG .,,DGGGGGGGGGGGGGGGGG:: \e[0m\n\r"); terminal.printf ("\e[0;30;42m::DGGGGGGGGGGGGGGGGG,,.::GGGGGGGGGGGGGGGG: #GGGG#,,# LGGGGGGGGGGGGGGGGGGG:E,,,GGGGGGGGGGGGGGGGGj: \e[0m\n\r"); terminal.printf ("\e[0;30;42m DGGGGGGGGGGGGGGGGG,,,,tGGGGGGGGGGGGGGGG .:.#GGGG#,,#.LGGGGGGGGGGGGGGGGGGG,,W,,GGGGGGGGGGGGGGGGG# : \e[0m\n\r"); terminal.printf ("\e[0;30;42m GGGGGGGGGGGGGGGGGG,;,,;GGGDGGGGGGGGGGGG :::#GGGG#,,#:GGGGGGGGGGGGGGGGGGGG#: :,GGGGGGGGGGGGGGGGGL : \e[0m\n\r"); terminal.printf ("\e[0;30;42m GGGGG ::::........;;,#,:::::::; jGGGGG ...#GGGG#,, #GGGGGWGGGGGGGGLGGGGG.:,G;GGGGG::::::: .. : \e[0m\n\r"); terminal.printf ("\e[0;30;42m:#GGGG##,,,,,,,,,,,,,,, ,,,,,,,,,# fGGGGG: W:#GGGG#,,,,LGGGG LGGGGGGG:LGGGG:#, ,GGGGG,,,,,,,E .:: \e[0m\n\r"); terminal.printf ("\e[0;30;42m:LGGGG##############i:#::###########GGGGGW,,,#GGGG#j.,:LGGGG .GGGGGGL,GGGGG,,.,KGGGGG#######W###### \e[0m\n\r"); terminal.printf ("\e[0;30;42m LGGGGGGGGGGGGGGGGGG,,.,.GGGGGGGGGGGGGGGL,,,.#GGGG#,,,#LGGGG #GGGGD,,GGGGG,,#,,GGGGGGGGGGGGGGGGGGG \e[0m\n\r"); terminal.printf ("\e[0;30;42mfGGGGGGGGGGGGGGGGGGG,.,,.GGGGGGGGGGGGGGGL,.W,#GGGG#:,,,GGGGG ::GGGG.,,GGGGG,, ,,GGGGGGGGGGGGGGGGGGG \e[0m\n\r"); terminal.printf ("\e[0;30;42m#GGGGGGGGGGGGGGGGGGG:#,,.GGGGGGGGGGGGGGGG.,::WGGGGW:LD,LGGGG ,:;GDE,,,GGGGG,,,.,GGGGGGGGGGGGGGGGGGG# \e[0m\n\r"); terminal.printf ("\e[0;30;42mLGGGGGGGGGGGGGGGDGGL, ,, GGGGGGGGGGGGGGGL.;.L#DDGG#:,,:GGGGG.,,,E#,,,,GGGGG,,,#;GGGGGGGGGGGGGGGGGGDW \e[0m\n\r"); terminal.printf ("\e[0;30;42mWWWWWWWWW######W#WW# ,,,:##W##########WWW::.,###WW#W:,,####K ,,,,:,,,WW####,,:i;###WWWKKEDDDDDGGGGGf \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: :: ::: #:,j,E,,,,,, .::f.:,,,iGGGGW,:,,: .,,,:#LGGL:,,,: j:: ,,,,,:::j,,..:: :: ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: :: .:: #,,:,#,,,,,L ::: W:, GGGGGGGE: K :#,:#GGGGGGG.,:# ::: ,,,,, ,#,,:,:: :: ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::: .:: :t,,:,,,,,,,W: ::: .WGGGGGGGLE ::: GKGGGGGGGG#t :: :.#,,,,,E,j:,: ::: .:: : \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::: ##ftL##.,:,,.,,,,, : ::: LGGGLW,#LLGD ::: LGGGL#WGGGLj::: ::E,,,,,#,.,,,##EE## :. : \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::tf,,,,,,,,,:,,,:,,,,, : ::: GGGi:,::WGGL::: fGGGE,,#:GGG:::: :. ,,,,,#,:,,,,,,,,:,.# . : \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: ;,,,,,,,,,,,:,:,,,,,. ::. :jGGW.,,,: #GGD GGG#W,,,K:#GG; :.: :,,,,L,,,,,,,,,,,,,,. ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: ,,,,:,:,,,,,,,.,,,,,. ::: :KGGKi:,,: .WDGWLGG# ,,,f,jGGE ::: :,,,,i,,,,,,,,,,:,,,: ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: ,,,,,W:,,,,,,,.,,,,,. ::: :#GG.;,,:: :.#GDGG#. :,,f,tGGG ::: :,,,,i,,,,,,,,L,:,,,, .:: \e[0m\n\r"); terminal.printf ("\e[0;30;42m :::,,,:,WL,:,,:,:,,,,,:.: ::: #GG..;,,,. WGGW :f,,,#:WGGi::: ::.,,,,,G,,,,,, #::,,,,,. : \e[0m\n\r"); terminal.printf ("\e[0;30;42m :: #:;,,,:G#:,.,,:,,,,, . ::: DGG.,.,,,L fGG#G .i,,,f,KGG ::: :: ,,,,,#,::,.DW;,:,,.# . : \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: .: j##G #LG ,,:,,,,, ::: :iGG.,#,,,, .GGKLGK: ;,,,:, GGi ::: t,,,,:#,.:#Gi####L : ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: :: ::: WDG::;,,,,,# ::: i GG#,..,,,:KGL GGGW:,,:#,:tGG,. ::: #,,,,,D,WGD#.:: :: ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: :: .:: KiLGWK::,,,D ::. W:.GG.:,#,,,fGG; WDG.,,.,,D#GL,,# :.: f,,,;ifGG#:#::: :. ::. \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::. .:: :#,,KGGD.,,,. E,,,,GG##::E,;GG#,,,;GGL:..:G:WG#,,,,# :W;,,,LGLGD,:: ::: ::: : \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::: ::: : ,,#WGGG#.,,:WLG,,,,,KD#;G,;#WGG,,,,,fGGi:,. ,LG#,,,,,,,#,:,,DGGE: ,:. ::: ::. : \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::. ::: : ,j,;LGGG#.,:,,,K.:,#GG,.t:,LGt,,,,:,WGD,,,,.GG:,,;#,,,,,:#GGG#,.,,., ::: .:: : \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: :: :Ef:,,,,:,#WGGGGW:,,,GG#,.GG:,,E#G# #Kif#i:GG# ;,#GG,,GLG,,,.EGGGL,:,#,,,:,# :: ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: :: .f::,,,,,:W,.,#GGGGG#.:GGG#:GG;,, DL,:,:,,,:,jGD.,,KGW,#GGG,.#LGGGW. ,,,,,,,,,,W :: ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: :: G,,,,,,,,,i,, ,,LGGGGGKGGGGGWG#W;#G#W,:,:,,.#,LG#,#GG#DGGGGWGGGGG#,:#,:,,,,,,,,,:#,: ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::. ,:,,,,,,,,,.,#:,.DGGGDGLGGGGGWG iGL.;,, :,,:jGGL:GKGGGGGGGGGGLD,,:.:#,,,,,,,,,,,L ::: : \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::: ,,,,,,,,,,,,G,, ,,;DGGGGGGGGGGGD,#G# ,,,,,,,,,;;#G##GGGGGGGGGGGD:,,:#,.:,,,,,,,,,,,,i::. : \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::. #,,,,,,,:,,,:,::K,,,,tLGGGGGGGGGGG#G:.#:,,,,,,.i: GWLGGGGGGGGGG#,,,,..,#:,:.,,,,,,,,,#::: : \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: . ,,,,,,,,:#K:,D,,;,,,, EGGGGGGGGGGD# ,K,,,,,,# WGGGGGGGGGGGL::,,:K:,,:,f#.,,,,,,,, ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: ::,,:,::iG : :,;.,,,,,,,;#GGGGGGGGGGGG,:K,,,,,,# tLGGGGGGGGGLG.,,,,,.,,#,,D: W:,:,,,.: ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m... .. .: ..W::i,,#:,,,,,iLGGGGGGGGGGG#D,,,,:,#WGGGGGGGGGGD#,,,,,::;;;::. . :: .. ... \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::: .:: ... t::W:,;::::::.KGGGGLDGGGGLD,,,,:ifGGGGGDGGGGLt,:,,,,:K::,,:D .. .. ::: : \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::: :::E ;#GGGGGWLGGGGGj,,#GGGGGLEWGGGG.::# .. ::. : \e[0m\n\r"); terminal.printf ("\e[0;30;42m :: :: ,DGGL#GK#LGDGG#KGGGGGWLGDGG#,,,# i.: :. : \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: :: :E :,:DL #G, DGGGGGGGDj GGWELW,,,# K :: ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: :: :. :::K.,KW i,:GKiWGE #:KGGGG#;D DL# GG:,G .#E###W , :: ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::: ::: :.#,,,,,G W#G#j:GLELGLGGLGGD.LGG,,GG : #,,,,::: ::: ::. : \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::: ::: :j,,,,,,,,, ,,tD DG G#GGE :,;GGDWGW #G# K,:.,;,,,,,,. ::: ::. : \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::. ::: ,:,,,,,,,: E,,:# GL iLDK. DLG# :GE .E;:L :,,,,,,,,K ::: .:: : \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: :: :::t,,,,,,,,.. #:,:# ;G# EGGEL LWGG DG ;,,# .f:,,,,,,,, :: :: ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: :: :::#,,,,,,,; : W,,,D #DK WGf #GK #GE #Li LG ,;,# :...,,,,,,,#:: :: ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m..: .. ... :,,,,.# .. :#,,,# GGWE.: GG. #GD #WWGK ,;t .: #:,,,:G,.. .: :.: \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::: ::: :::.:# :: ::: :,,,,:iL#:,,,;#LWGG GL# # ,,:#L#..,,,,. :: ::: #.,i. ::: ::. : \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::: ::: :.W# ::: ::::,,,,,,,EG#;:,:,,iDGi KGEW,,,,:WWGW,:,,,,:G:: ::: G.: ::: ::. : \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::. ::: ::: ::: ::i:,,,,,, GG,,.Kf.,,;Df #GG,,, #i:,,GL,,,,,,,,.: ::: ::: .:: ::: : \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: :: ::: ::: :: ,,,,,,:,iGG:,:,,,,:.KL#GG,.,,,,,,::GGt,,,,,,,: :: ::: .:: :: ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: :: ::: ::: :: G,,,,,,,LjGG W;,,,,,,,KDG#.,,,,,,LL GG..,,,,,,,.:: ::: .:: :: ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: :: .:: ::: :: G,,,,,,,.fGG #,,,,,,.LGK#;,,,,,,; .GG #,,,,,,,#:: ::: ::: :: ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::. ::: .:: ::: ::,,,,,,# jGG.: ,,,,,:LGDLL#,,,,,,#:fGG .,,,,,, ::: ::: ::: ::: : \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::: ::: ::: ::: ,,,,,,D: GG# ,,,,,fLGD fGGD.,,,,..#GG : .,,,,,, ::: ::: ::: ::. : \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::. .:: .:: ::: ,,,,,: : GGL ,,,,DLGL .:GGGLi:,,: GGG :.L;,,,,, .:: ::: .:: .:. : \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: :: ::: .:: :: L,,,:i ::GGGW.,,KDGG: .#GGGEf.,GDGL: #,,,,# : ::: ::: :. ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: :: ::: ::: :: ,:. :.#GGGGGGGGK#: :..GGGGGGGGG#: ..j# :: ::: .:: :: ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m ... ... ... ... .. ... :DGGGGDGW:: ... #:EGGGGGGD ... .:. ... ... ... .: . \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::: .:: ::: ::: ::. ::: #GGGGLK;: ::. :;DGGGGG# ::: ::: .:. ::: .:: ::: : \e[0m\n\r"); terminal.printf ("\e[0;30;42m ::: ::: ::: ::: ::: ::: :#DD#.::# ::: K,,;j##G ::: ::: ::: ::: ::: ::. : \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: :: ::: ::: :: ::: ::: ,,,,..:: ::: :;,, ::: ::: :: ::: ::: :: ::: \e[0m\n\r"); terminal.printf ("\e[0;30;42m::: :: ::: ::: :. ::: ::: .:###:.: ::. ##K. ::: ::: :: ::: ::: :. ::: \e[0m\n\r"); wait(5); } /*------------------------------------------------- ---------------------------------------------------*/ void clear_screen() //esta funcion te limpia la pantalla { terminal.printf("\x1B[2J"); terminal.printf("\x1B[H"); } /*------------------------------------------------- ---------------------------------------------------*/ void Reloj() // esta funcion te cuenta los minutoos al igual que te hace los cambios de hora { Segundos++; if(Segundos>=60) { Minutos++; Segundos= 0; } if(Minutos>=60) { Horas++; Minutos=0; } if(Horas>=24 && Bandera3==0) //Formato de 24 hrs { Horas=1; Dia++; dia++; DiasT++; DiasF--; if(dia>=7)dia=0; if(Bandera2==1&& dia==0)SemanaN++; if(Bandera2==0&& dia==6)SemanaN++; } if(Horas>=13 && Bandera3==1)Horas=1; //Formato de 12 hrs //si la hora es mayor o igual a 13 y la bandera de formato de hora es 1 la variable horas la erestablecea a 1 if(Horas==12&& Minutos==0 && Segundos==0 && Bandera3==1) // PM { Bandera4=!Bandera4; if(Bandera4==1) // BANDERA4: 0=AM 1=PM { Dia++; dia++; DiasT++; DiasF--; if(dia>=7)dia=1; if(Bandera2==1&& Dia==0)SemanaN++; if(Bandera2==0&& Dia==6)SemanaN++; } } } /*----------------------------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------------------------------*/ void Horario_Invierno_Verano()// esta funcion se usa para el cambio de hora en la semana 14 y semana 44 { int opcion; intento: clear_screen(); terminal.printf("\n\t 0.-ACTIVAR HORARIO DE INVIERNO\n\r"); terminal.printf("\t 1.-ACTIVAR HORARIO DE VERANO\n\r"); terminal.printf("\t 2.-SALIR\n\r"); opcion=terminal.putc(terminal.getc())-48; if(opcion==0&&Bandera5==0) { clear_screen(); terminal.printf("\n\tACTIVADO HORARIO DE INVIERNO"); Bandera5=0; Horas--; wait(1.5); return; } if(opcion==1&&Bandera5==1) { clear_screen(); terminal.printf("\n\tACTIVADO HORARIO DE VERANO"); Bandera5=0; Horas++; wait(1.5); return; } if(opcion>2) { clear_screen(); terminal.printf("\n\r\tintente de nuevo, valor ingresado incorrercto"); wait(1.5); goto intento; } if(opcion==2)return; } /*----------------------------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------------------------------*/ void Imprimir_reloj() { if(Bandera3==0)terminal.printf ("\r\n\t\t\e[31m %i:%i:%i hrs\e[0m\n\r",Horas,Minutos,Segundos); if(Bandera3==1 && Bandera4==1)terminal.printf("\r\n\t\t\e[31m %i:%i:%i AM \e[0m\n\r",Horas,Minutos,Segundos); if(Bandera3==1 && Bandera4==0)terminal.printf("\r\n\t\t\e[31m %i:%i:%i PM \e[0m\n\r",Horas,Minutos,Segundos); } /*----------------------------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------------------------------*/ void Imprimir_fecha(){ terminal.printf("\n\r\tHOY ES %s %i/%s/%i ",DIA[dia],Dia,MES[Mes-1],Anio); terminal.printf("\n\r\t\e[1;36m Semana en curso: %i , Los dias transcurridos son: %i , Los dias faltantes son: %i\e[42m" , SemanaN,DiasT,DiasF); if (Bandera1==1)terminal.printf("\n\r\t\e[1;31;40m Este anio es bisiesto\e[42m"); if (Bandera1==0)terminal.printf("\n\r\t\e[1;34;40m Este anio no es bisiesto\e[42m"); if (Bandera2==1)terminal.printf("\n\r\t\e[0;37;40m Calendario Juliano\e[42m"); if (Bandera2==0)terminal.printf("\n\r\t\e[1;32;40m Calendario Gregoriano\e[42m"); if (Bandera5==0)terminal.printf("\n\r\t\e[1;36;48m HORARIO DE Invierno:\e[0m \e[41mSI\e[0m\n\r"); if (Bandera5==1)terminal.printf("\n\r\t\e[0;31;40m HORARIO DE Verano:\e[0m \e[42mSI\e[0m\n\r"); } /*----------------------------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------------------------------*/ void Fecha(){ if(Dia>=32 && Mes!=2 && Mes!=4 && Mes!=6 && Mes!=9 && Mes!=11) { Mes++; Dia=1; } if(Dia==31 && Mes!=1 && Mes!=2 && Mes!=3 && Mes!=5 && Mes!=7 && Mes!=8 && Mes!=10 && Mes!=12) //si el dia es igu { Dia=1; Mes++; } if(Dia==30 && Mes==2 && Bandera1==1) //si el dia es igual a 30 y la variable mes es igual al mes 2 y la bandera de año bisiesto es igual a 1 entra { Dia=1; //restablece la variable dia a 1 Mes++; //incrementa una unidad la Variable mes } if(Dia==29 && Mes==2 && Bandera1==0) //si el dia es igual a 29 y la variable mes es igual al mes 2 y la bandera de año bisiesto es igual a 0 entra { Dia=1; //restablece la variable dia a 1 Mes++; //incrementa una unidad la Variable mes } if(Mes>=13) //si la Variable mes es mayor igual a 13 entra { Mes=1; //restablece la variable mes a 1 Anio++; //incrementa la variable año una unidad SemanaN=1; //restablece la variable semana a 1 if(Anio%4==0||Anio%400==0)Bandera1=1; //si el residuo del año dividido entre 4 es 0 o el residuo de ano dividido entre 400 es 0 es un año bisiesto if(Anio%4!=0||(Anio%100==0&&Anio%400!=0))Bandera1=0; DiasT=0; //restablece la variable DIAS TRANSCURRIDOS A 0 if(Bandera3==0)DiasT=364; //si el año no es bisiesto la variable Dias Por Transcurrir la iguala a 364 if(Bandera3==1)DiasT=365; //si el año es bisiesto la variable Dias Por Transcurrir la iguala a 365 } } /*----------------------------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------------------------------*/ void Config_Hora() // configura la hora tanto en formato de 24hrs y 12hrs am/pm { int op; //variable para guardar la opcion qe eligamos uint8_t Thora; //variable temporal cdonde se guardara la hora para despues asignarla a nnuestra varaiable Horas uint8_t Tminutos; uint8_t Tsegundos; bool TBandera3; //Configuracion de Formato 12hrs y 24hrs bool TBandera4; //Configuracion de Meridiano (PM/AM) inicio_configuracion: clear_screen(); terminal.printf("\n\r\e[33mFormato\e[0m"); terminal.printf("\n\r\e[31m 1)24hrs\e[0m"); terminal.printf("\n\r\e[31m 2)12hrs\e[0m"); terminal.printf("\n\r\e[33m 3)Regresar\e[0m"); op = terminal.getc(); if(op=='1') { intento: clear_screen(); TBandera3=0; terminal.printf("\n\r\tDigite la hora para el formato de 24hrs: HH:MM:SS\n"); Thora = (terminal.putc(terminal.getc())-48)*10; Thora = terminal.putc(terminal.getc())-48+Thora; terminal.printf(":"); Tminutos = (terminal.putc(terminal.getc())-48)*10; Tminutos = terminal.putc(terminal.getc())-48+Tminutos; terminal.printf(":"); Tsegundos = (terminal.putc(terminal.getc())-48)*10; Tsegundos = terminal.putc(terminal.getc())-48+Tsegundos; Horas= Thora; Minutos= Tminutos; Segundos= Tsegundos; wait(.5); if(Thora>=24||Tminutos>=60||Tsegundos>=60) { clear_screen(); terminal.printf("\n\r\t ERROR , TRY AGAIN"); wait(2); goto intento; } Bandera3=TBandera3; } if(op=='2') { intento2: clear_screen(); TBandera3=1; terminal.printf("\n\r\tDigite la hora en formato de 12hrs: HH:MM:SS AM/PM\n"); Thora = (terminal.putc(terminal.getc())-48)*10; Thora = terminal.putc(terminal.getc())-48+Thora; terminal.printf(":"); Tminutos = (terminal.putc(terminal.getc())-48)*10; Tminutos = terminal.putc(terminal.getc())-48+Tminutos; terminal.printf(":"); Tsegundos = (terminal.putc(terminal.getc())-48)*10; Tsegundos = terminal.putc(terminal.getc())-48+Tsegundos; Segundos= Tsegundos; Horas= Thora; Minutos= Tminutos; wait(.5); if(Thora<1||Thora>=13||Tminutos>=60||Tsegundos>=60) { clear_screen(); terminal.printf("\n\r\ERROR , TRY AGAIN"); wait(.5); goto intento2; } AMPM1: clear_screen(); terminal.printf("\n\r0)PM"); terminal.printf("\n\r1)AM"); terminal.printf("\n\r2)SALIR"); TBandera4=terminal.putc(terminal.getc())-48; if(TBandera4>=3) { clear_screen(); terminal.printf("\n\r\tERROR , TRY AGAIN"); wait(2); goto AMPM1; } Bandera3= TBandera3; Bandera4= TBandera4; } if(op>'4') { clear_screen(); terminal.printf("\n\r\tERROR , TRY AGAIN"); wait(2); goto inicio_configuracion; } } /*----------------------------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------------------------------*/ void Cont() { Dia++; dia++; DiasT++; DiasF--; if(dia>=7)dia=0; if(Bandera2==1&& dia==0)SemanaN++; if(Bandera2==0&& dia==6)SemanaN++; if(Dia>31&& (Mes==1||Mes==3||Mes==5||Mes==7||Mes==8||Mes==10||Mes==12)) { Mes++; Dia=1; } if(Dia>=31 && Mes!=1&&Mes!=2&&Mes!=3&& Mes!=5&&Mes!=7&&Mes!=8&&Mes!=10&& Mes!=12) { Dia=1; Mes++; } if(Dia>28 && Mes==2 && Bandera1==0) { Dia=1; Mes++; } if(Dia>29 && Mes==2 && Bandera1==1) { Dia=1; Mes++; } if(Mes>12) { Anio++; SemanaN=1; Mes=1; if(Anio%4==0||Anio%400==0)Bandera1=1; if(Anio%4!=0||(Anio%100==0&&Anio%400!=0))Bandera1=0; if(Bandera1==1) DiasF=365; if(Bandera1==0) DiasF=364; DiasT=0; } } /*----------------------------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------------------------------*/ void reg() { Dia--; dia--; DiasT--; DiasF++; if(dia<0)dia=6; if(Bandera2==1&& dia==6)SemanaN--; if(Bandera2==0&& dia==5)SemanaN--; if(Dia<=0&& (Mes==2||Mes==4||Mes==6||Mes==8||Mes==9||Mes==11||Mes==1)) { Mes--; Dia=31; } if(Dia<=0 && Mes!=2&&Mes!=3&&Mes!=4&&Mes!=6&& Mes!=8&&Mes!=9&&Mes!=11&&Mes!=1) { Dia=30; Mes--; } if(Dia<=0 && Mes==3 && Bandera1==0) { Dia=28; Mes--; } if(Dia<=0 && Mes==3 && Bandera1==1) { Dia=29; Mes--; } if(Mes<=0) { Anio--; SemanaN=53; Mes=12; if(Anio%4==0||Anio%400==0)Bandera1=1; if(Anio%4!=0||(Anio%100==0&&Anio%400!=0))Bandera1=0; if(Bandera1==1) DiasT=365; if(Bandera1==0) DiasT=364; DiasF=0; } } /*----------------------------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------------------------------*/ void Config_Fecha()//configura la fecha tanto el dia mes y año con el calendario gregoriano y juliano { int op2,op3; uint8_t TDia; uint8_t TMes; uint16_t TAnio; bool TBandera1; //Configuracion del año Bisiesto bool TBandera2; //Configuracion de Calendario 0)Gregoriano o 1)juliano inicio_configuracion: clear_screen(); terminal.printf("\n\rIngresa la Fecha:"); terminal.printf("\n\r1)Cambiar" ); terminal.printf("\n\r2)Regresar"); op2 = terminal.getc(); if(op2=='1') { clear_screen(); TBandera1=1; TBandera2=1; terminal.printf("\n\rTipo de Calendario:"); terminal.printf("\n\r0)Gregoriano"); terminal.printf("\n\r1)Juliano"); terminal.printf("\n\r2)Regresar"); op3 = terminal.getc(); if(op3=='1') { TBandera2=1; Inicio: clear_screen(); terminal.printf("\n\r\tDame tu fecha en formato de DD/MM/AAAA"); terminal.printf("\n\r\tDame la Fecha: "); TDia = (terminal.putc(terminal.getc())-48)*10; /////////////// TDia = terminal.putc(terminal.getc())-48+TDia; terminal.printf("/"); TMes = (terminal.putc(terminal.getc())-48)*10; TMes = terminal.putc(terminal.getc())-48+TMes; terminal.printf("/"); TAnio = (terminal.putc(terminal.getc())-48)*1000; TAnio = (terminal.putc(terminal.getc())-48)*100+TAnio; TAnio = (terminal.putc(terminal.getc())-48)*10+TAnio; TAnio = (terminal.putc(terminal.getc())-48)+TAnio; if(TAnio%4==0||TAnio%400==0)TBandera1=1; if(TAnio%4!=0||(TAnio%100==0&&TAnio%400!=0))TBandera1=0; if((TDia>31&& (TMes==1||TMes==3||TMes==5||TMes==7||TMes==8||TMes==10||TMes==12))|| (TDia>=31 && TMes!=1&&TMes!=2&&TMes!=3&& TMes!=5&&TMes!=7&&TMes!=8&&TMes!=10&&TMes!=12)|| (TDia>28 && TMes==2 && TBandera1==0)|| (TDia>29 && TMes==2 && TBandera1==1)|| (TMes>=13||TMes<=0)) { terminal.printf("\n\r\tERROR , TRY AGAIN"); terminal.getc(); goto Inicio; } if((TAnio>Anio)||(TAnio==Anio && TMes>Mes)||(TAnio==Anio && TMes==Mes && TDia>Dia)) while(Anio!=TAnio||Mes!=TMes||Dia!=TDia)Cont(); if((TAnio<Anio)||(TAnio==Anio && TMes<Mes)||(TAnio==Anio && TMes==Mes && TDia<Dia)) while(Anio!=TAnio||Mes!=TMes||Dia!=TDia)reg(); } if(op3=='0') //Calendario Gregoriano { TBandera2=0; Bandera2=TBandera2; Inicio2: clear_screen(); terminal.printf("\n\r\tDame la fecha en formato de DD/MM/AAAA"); terminal.printf("\n\r\tDame la Fecha: "); TDia = (terminal.putc(terminal.getc())-48)*10; TDia = terminal.putc(terminal.getc())-48+TDia; terminal.printf("/"); TMes = (terminal.putc(terminal.getc())-48)*10; TMes = terminal.putc(terminal.getc())-48+TMes; terminal.printf("/"); TAnio = (terminal.putc(terminal.getc())-48)*1000; TAnio = (terminal.putc(terminal.getc())-48)*100+TAnio; TAnio = (terminal.putc(terminal.getc())-48)*10+TAnio; TAnio = (terminal.putc(terminal.getc())-48)+TAnio; if(TAnio%4==0||TAnio%400==0)TBandera1=1; if(TAnio%4!=0||(TAnio%100==0&&TAnio%400!=0))TBandera1=0; if((TDia>31&& (TMes==1||TMes==3||TMes==5||TMes==7||TMes==8||TMes==10||TMes==12))|| (TDia>=31 && TMes!=1&&TMes!=2&&TMes!=3&& TMes!=5&&TMes!=7&&TMes!=8&&TMes!=10&&TMes!=12)|| (TDia>28 && TMes==2 && TBandera1==0)|| (TDia>29 && TMes==2 && TBandera1==1)|| (TMes>=13||TMes<=0)) { terminal.printf("\n\r\tERROR , TRY AGAIN"); terminal.getc(); goto Inicio2; } if((TAnio>Anio)||(TAnio==Anio && TMes>Mes)||(TAnio==Anio && TMes==Mes && TDia>Dia)) while(Anio!=TAnio||Mes!=TMes||Dia!=TDia)Cont(); if((TAnio<Anio)||(TAnio==Anio && TMes<Mes)||(TAnio==Anio && TMes==Mes && TDia<Dia)) while(Anio!=TAnio||Mes!=TMes||Dia!=TDia)reg(); } if(op3=='2')return; } if(op2=='2')return; if(op2>'3') { clear_screen(); terminal.printf("\n\r\tERROR , TRY AGAIN"); wait(2); goto inicio_configuracion; } } /*----------------------------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------------------------------*/ /* END Mbed */