Julio Daniel Luna Villanueva / Mbed 2 deprecated FRDM_KL46Z_ProyEnsam

Dependencies:   mbed

Committer:
JulioDLuna
Date:
Fri May 31 00:20:46 2019 +0000
Revision:
0:9f1d9b302ed4
Child:
1:dfa13453f7d2
Child:
2:ca7dc66b33ed
Puerta jalando al 100; mensajes con basura al final

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JulioDLuna 0:9f1d9b302ed4 1 /* ###########################################################################
JulioDLuna 0:9f1d9b302ed4 2 ** Archivo : main.c
JulioDLuna 0:9f1d9b302ed4 3 ** Proyecto : FRDM-KL46Z_Proyecto Ensamblado Baño Automático
JulioDLuna 0:9f1d9b302ed4 4 ** Procesador : MKL46Z256VLL4
JulioDLuna 0:9f1d9b302ed4 5 ** Herramienta : Mbed
JulioDLuna 0:9f1d9b302ed4 6 ** Version : Driver 01.01
JulioDLuna 0:9f1d9b302ed4 7 ** Compilador : GNU C Compiler
JulioDLuna 0:9f1d9b302ed4 8 ** Fecha/Hora : 14-07-2015, 11:48, # CodeGen: 0
JulioDLuna 0:9f1d9b302ed4 9 ** Descripción :
JulioDLuna 0:9f1d9b302ed4 10 ** Componentes : GPIO, Timer, etc .
JulioDLuna 0:9f1d9b302ed4 11 ** Configuraciones : Includes, Stacks y Drivers externos
JulioDLuna 0:9f1d9b302ed4 12 ** Autores :
JulioDLuna 0:9f1d9b302ed4 13 ** ATEAM Development Group:
JulioDLuna 0:9f1d9b302ed4 14 Camacho Camacho Fermín Rodrigo
JulioDLuna 0:9f1d9b302ed4 15 Luna Villanueva Julio Daniel
JulioDLuna 0:9f1d9b302ed4 16 Sánchez Zarazua Edgar Omar
JulioDLuna 0:9f1d9b302ed4 17 ** -
JulioDLuna 0:9f1d9b302ed4 18 **
JulioDLuna 0:9f1d9b302ed4 19 ** Versión : Beta
JulioDLuna 0:9f1d9b302ed4 20 ** Revisión : A
JulioDLuna 0:9f1d9b302ed4 21 ** Release : 0
JulioDLuna 0:9f1d9b302ed4 22 ** Bugs & Fixes :
JulioDLuna 0:9f1d9b302ed4 23 ** Date : 20/10/2019
JulioDLuna 0:9f1d9b302ed4 24 ** Added support for Led_RGB
JulioDLuna 0:9f1d9b302ed4 25 ** 22/09/2018
JulioDLuna 0:9f1d9b302ed4 26 ** Added LCD Menu, Beta version (with bugs)
JulioDLuna 0:9f1d9b302ed4 27 **
JulioDLuna 0:9f1d9b302ed4 28 ** ###########################################################################*/
JulioDLuna 0:9f1d9b302ed4 29 /*
JulioDLuna 0:9f1d9b302ed4 30 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
JulioDLuna 0:9f1d9b302ed4 31 : Includes
JulioDLuna 0:9f1d9b302ed4 32 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
JulioDLuna 0:9f1d9b302ed4 33 */
JulioDLuna 0:9f1d9b302ed4 34 #include "mbed.h"
JulioDLuna 0:9f1d9b302ed4 35
JulioDLuna 0:9f1d9b302ed4 36 /*
JulioDLuna 0:9f1d9b302ed4 37 :...............................................................................
JulioDLuna 0:9f1d9b302ed4 38 : Definiciones
JulioDLuna 0:9f1d9b302ed4 39 :...............................................................................
JulioDLuna 0:9f1d9b302ed4 40 */
JulioDLuna 0:9f1d9b302ed4 41 #define On 0
JulioDLuna 0:9f1d9b302ed4 42 #define off 1
JulioDLuna 0:9f1d9b302ed4 43 #define TRUE 1
JulioDLuna 0:9f1d9b302ed4 44 #define FALSE 0
JulioDLuna 0:9f1d9b302ed4 45 #define hold 2 // Estado para boton mantenido
JulioDLuna 0:9f1d9b302ed4 46 #define release 3 // Estado para boton liberado
JulioDLuna 0:9f1d9b302ed4 47 #define TRUE 1
JulioDLuna 0:9f1d9b302ed4 48 #define FALSE 0
JulioDLuna 0:9f1d9b302ed4 49 #define Ticker_Time 1000 // Tiempo del Ticker (us)
JulioDLuna 0:9f1d9b302ed4 50 #define Rate_Time 2 // Tiempo de Encendido de los Digitos (ms)
JulioDLuna 0:9f1d9b302ed4 51 #define Scan_Time 2 // Tiempo de Barrido del Display (ms)
JulioDLuna 0:9f1d9b302ed4 52 #define Shift_Time 2 // Tiempo de corrimiento (x Counter_Time)
JulioDLuna 0:9f1d9b302ed4 53 #define Counter_Time 100 // Tiempo de counter (ms)
JulioDLuna 0:9f1d9b302ed4 54 #define Size_String 20 // Tamaño del Buffer de Caracteres
JulioDLuna 0:9f1d9b302ed4 55 #define Digit_Null 0xFF // Valor para apagar los Segmentos
JulioDLuna 0:9f1d9b302ed4 56 #define Degree_Symbol 0x0F // Valor para el Símbolo de Grados
JulioDLuna 0:9f1d9b302ed4 57 /*
JulioDLuna 0:9f1d9b302ed4 58 +-------------------------------------------------------------------------------
JulioDLuna 0:9f1d9b302ed4 59 | Configuración de Puertos
JulioDLuna 0:9f1d9b302ed4 60 +-------------------------------------------------------------------------------
JulioDLuna 0:9f1d9b302ed4 61 */
JulioDLuna 0:9f1d9b302ed4 62 Ticker Barrido; // Interrupción del Timer
JulioDLuna 0:9f1d9b302ed4 63 BusOut Anodos(PTA14, PTA15, PTA16, PTA17); // Salidas a los anodos del display: A4 A3 A2 A1
JulioDLuna 0:9f1d9b302ed4 64 BusOut Catodos(PTE16, PTE17, PTE18, PTE19, PTE20, PTE21, PTE22, PTE23); // Salidas a los catodos: g f a b c d e p
JulioDLuna 0:9f1d9b302ed4 65 DigitalOut Green_Led (PTD5); // Led de Actividad del Programa
JulioDLuna 0:9f1d9b302ed4 66 DigitalOut Red_Led (PTE29); // Led de Actividad del Programa
JulioDLuna 0:9f1d9b302ed4 67
JulioDLuna 0:9f1d9b302ed4 68 DigitalIn Selector_seguro(PTD3);
JulioDLuna 0:9f1d9b302ed4 69 DigitalIn Limit_switch(PTB20);
JulioDLuna 0:9f1d9b302ed4 70 DigitalOut Ventilador(PTD4); //Relé
JulioDLuna 0:9f1d9b302ed4 71 DigitalOut Luz(PTD7); //Relé
JulioDLuna 0:9f1d9b302ed4 72 DigitalOut Seguro(PTD6); //Relé
JulioDLuna 0:9f1d9b302ed4 73 DigitalOut Red(PTE6);
JulioDLuna 0:9f1d9b302ed4 74 DigitalOut Green(PTE3);
JulioDLuna 0:9f1d9b302ed4 75 DigitalOut Blue(PTE2);
JulioDLuna 0:9f1d9b302ed4 76 DigitalOut Buzzer(PTE31);
JulioDLuna 0:9f1d9b302ed4 77
JulioDLuna 0:9f1d9b302ed4 78 /*
JulioDLuna 0:9f1d9b302ed4 79 +-------------------------------------------------------------------------------
JulioDLuna 0:9f1d9b302ed4 80 | Variables Globales de Usuario
JulioDLuna 0:9f1d9b302ed4 81 +-------------------------------------------------------------------------------
JulioDLuna 0:9f1d9b302ed4 82 */
JulioDLuna 0:9f1d9b302ed4 83 uint16_t Rate=325; // 1000us=1ms
JulioDLuna 0:9f1d9b302ed4 84 uint8_t cont_1ms=0;
JulioDLuna 0:9f1d9b302ed4 85 uint8_t cont_10ms=0;
JulioDLuna 0:9f1d9b302ed4 86 uint8_t cont_100ms=0;
JulioDLuna 0:9f1d9b302ed4 87 uint8_t cont_1s=0;
JulioDLuna 0:9f1d9b302ed4 88 bool Flag1=FALSE;
JulioDLuna 0:9f1d9b302ed4 89 bool Flag2=FALSE;
JulioDLuna 0:9f1d9b302ed4 90 uint8_t u=0;
JulioDLuna 0:9f1d9b302ed4 91
JulioDLuna 0:9f1d9b302ed4 92 //Para el DISPLAY de 7 segmentos:
JulioDLuna 0:9f1d9b302ed4 93 /*Para CATODO COMUN:
JulioDLuna 0:9f1d9b302ed4 94 // 0 1 2 3 4 5 6 7 8 9 A b C d E f G h I j K L M n o p q r S t u v w X y z
JulioDLuna 0:9f1d9b302ed4 95 //uint8_t Segmentos[]={0x7F,0x18,0xB6,0xBC,0xD8,0xEC,0xEE,0x38,0xFE,0xFC,0xFA,0xCE,0x66,0x9E,0xE6,0xE2,0x6E,0xCA,0x42,0x1C,0xD2,0x46,0x7A,0x8A,0x8E,0xF2,0xF8,0xC2,0xEC,0xC6,0x0E,0x1E,0x5E,0xDA,0xC8,0xB6};
JulioDLuna 0:9f1d9b302ed4 96 // Millares,Centenas,Decenas,Unidades
JulioDLuna 0:9f1d9b302ed4 97 //uint8_t Digitos[]={0x0E, 0x0D, 0x0B, 0x07};
JulioDLuna 0:9f1d9b302ed4 98 // Para descomponer el valor en multiplos
JulioDLuna 0:9f1d9b302ed4 99 //Multiplos[]={Millares,Centenas,Decenas,Unidades}
JulioDLuna 0:9f1d9b302ed4 100 Utilizar C.I. 74LS126 como Latch para c/u de los segmentos del Display*/
JulioDLuna 0:9f1d9b302ed4 101
JulioDLuna 0:9f1d9b302ed4 102
JulioDLuna 0:9f1d9b302ed4 103 //Para ANODO COMUN:
JulioDLuna 0:9f1d9b302ed4 104 // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
JulioDLuna 0:9f1d9b302ed4 105 // 0 1 2 3 4 5 6 7 8 9 A b C d E f G h I j K L M n o p q r S t u v w X y z space -
JulioDLuna 0:9f1d9b302ed4 106 uint8_t Segmentos[]={0x81,0xE7,0x49,0x43,0x27,0x13,0x11,0xC7,0x01,0x03,0x05,0x31,0x99,0x61,0x19,0x1D,0x91,0x35,0xBD,0xB3,0x2D,0xB9,0x85,0x75,0x71,0x0D,0x07,0x3D,0x13,0x39,0xF1,0xE1,0xA1,0x25,0x37,0x49,0xFF,0x7F};
JulioDLuna 0:9f1d9b302ed4 107 // Millares,Centenas,Decenas,Unidades
JulioDLuna 0:9f1d9b302ed4 108 uint8_t Digitos[]={0x01, 0x02, 0x04, 0x08, 0x00, 0xFF};
JulioDLuna 0:9f1d9b302ed4 109 // Para descomponer el valor en multiplos
JulioDLuna 0:9f1d9b302ed4 110 //Multiplos[]={Millares,Centenas,Decenas,Unidades}
JulioDLuna 0:9f1d9b302ed4 111 //Utilizar C.I. 74LS125 como Latch para c/u de los segmentos del Display
JulioDLuna 0:9f1d9b302ed4 112 uint8_t Mensaje1[]={36,36,24,12,30,25,10,13,24,36,36,36}; // MENSAJE Ocupado
JulioDLuna 0:9f1d9b302ed4 113 uint8_t Mensaje2[]={36,36,13,18,28,25,24,23,18,11,21,14.36,36}; // MENSAJE Disponible
JulioDLuna 0:9f1d9b302ed4 114 uint8_t Mensaje3[]={36,36,11,18,14,23,31,14,23,18,13,24,36,36}; // MENSAJE Bienvenido
JulioDLuna 0:9f1d9b302ed4 115 uint8_t Numeros[]={11,10,23,24,36,36,36,36}; //MENSAJE INICIAL Bano
JulioDLuna 0:9f1d9b302ed4 116 uint8_t Cadena[]={11,18,14,23,31,14,23,18,13,24,36,36}; //BUFFER Bienvenidos
JulioDLuna 0:9f1d9b302ed4 117 uint8_t scan_rate = Scan_Time ;
JulioDLuna 0:9f1d9b302ed4 118 uint8_t shift_rate= Shift_Time;
JulioDLuna 0:9f1d9b302ed4 119 uint16_t counter=1250;
JulioDLuna 0:9f1d9b302ed4 120 uint8_t i=0;
JulioDLuna 0:9f1d9b302ed4 121 uint8_t nchar=0;
JulioDLuna 0:9f1d9b302ed4 122 bool flag1=FALSE;
JulioDLuna 0:9f1d9b302ed4 123 bool flag2=FALSE;
JulioDLuna 0:9f1d9b302ed4 124 bool mode=0;
JulioDLuna 0:9f1d9b302ed4 125 uint8_t punto_decimal=0; //Posición del Punto Decimal: 0=sin punto, 1=unidades, 2=decenas, 3=centemas 4=millares,
JulioDLuna 0:9f1d9b302ed4 126 uint8_t control=0;
JulioDLuna 0:9f1d9b302ed4 127 /*
JulioDLuna 0:9f1d9b302ed4 128 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
JulioDLuna 0:9f1d9b302ed4 129 | Definición de los Vectores de Interrupción
JulioDLuna 0:9f1d9b302ed4 130 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
JulioDLuna 0:9f1d9b302ed4 131 */
JulioDLuna 0:9f1d9b302ed4 132 void Barrido_OnInterrupt(void);
JulioDLuna 0:9f1d9b302ed4 133 /*
JulioDLuna 0:9f1d9b302ed4 134 ________________________________________________________________________________
JulioDLuna 0:9f1d9b302ed4 135 |
JulioDLuna 0:9f1d9b302ed4 136 | Funciones Prototipo
JulioDLuna 0:9f1d9b302ed4 137 |_______________________________________________________________________________
JulioDLuna 0:9f1d9b302ed4 138 */
JulioDLuna 0:9f1d9b302ed4 139 // Las Funciones Prototipo van aquí !
JulioDLuna 0:9f1d9b302ed4 140 bool BanoDisponible(void);
JulioDLuna 0:9f1d9b302ed4 141 bool BanoOcupado(void);
JulioDLuna 0:9f1d9b302ed4 142 bool PuertaAbierta(void);
JulioDLuna 0:9f1d9b302ed4 143 void Display(void);
JulioDLuna 0:9f1d9b302ed4 144 void Mensaje(void);
JulioDLuna 0:9f1d9b302ed4 145 /*
JulioDLuna 0:9f1d9b302ed4 146 #===============================================================================
JulioDLuna 0:9f1d9b302ed4 147 |
JulioDLuna 0:9f1d9b302ed4 148 | P R O G R A M A P R I N C I P A L
JulioDLuna 0:9f1d9b302ed4 149 |
JulioDLuna 0:9f1d9b302ed4 150 #===============================================================================
JulioDLuna 0:9f1d9b302ed4 151 */
JulioDLuna 0:9f1d9b302ed4 152
JulioDLuna 0:9f1d9b302ed4 153 ////////////////////////////// PROGRAMA PRINCIPAL //////////////////////////////////////////
JulioDLuna 0:9f1d9b302ed4 154 int main()
JulioDLuna 0:9f1d9b302ed4 155 {
JulioDLuna 0:9f1d9b302ed4 156 Buzzer=1;
JulioDLuna 0:9f1d9b302ed4 157 wait(0.020);
JulioDLuna 0:9f1d9b302ed4 158 Buzzer=0;
JulioDLuna 0:9f1d9b302ed4 159 Red=0;
JulioDLuna 0:9f1d9b302ed4 160 Blue=1;
JulioDLuna 0:9f1d9b302ed4 161 Green=0;
JulioDLuna 0:9f1d9b302ed4 162 wait(0.5);
JulioDLuna 0:9f1d9b302ed4 163 Barrido.attach_us(&Barrido_OnInterrupt, Rate); // Le asigna el periodo de barrido cada 10 ms
JulioDLuna 0:9f1d9b302ed4 164 while(true)
JulioDLuna 0:9f1d9b302ed4 165 {
JulioDLuna 0:9f1d9b302ed4 166 if(Limit_switch==1 && Selector_seguro==0)
JulioDLuna 0:9f1d9b302ed4 167 { //Puerta Cerrada (BAÑO DISPONIBLE)
JulioDLuna 0:9f1d9b302ed4 168 Seguro=0; //Seguro desactivado
JulioDLuna 0:9f1d9b302ed4 169 BanoDisponible();
JulioDLuna 0:9f1d9b302ed4 170 }
JulioDLuna 0:9f1d9b302ed4 171 if(Limit_switch==1 && Selector_seguro==1)
JulioDLuna 0:9f1d9b302ed4 172 { //Puerta Cerrada (BAÑO OCUPADO)
JulioDLuna 0:9f1d9b302ed4 173 Seguro=1; //Seguro activado
JulioDLuna 0:9f1d9b302ed4 174 BanoOcupado();
JulioDLuna 0:9f1d9b302ed4 175 }
JulioDLuna 0:9f1d9b302ed4 176 if(Limit_switch==0 && Selector_seguro==0)
JulioDLuna 0:9f1d9b302ed4 177 { //Puerta Abierta
JulioDLuna 0:9f1d9b302ed4 178 Seguro=0; //Desactivado
JulioDLuna 0:9f1d9b302ed4 179 PuertaAbierta();
JulioDLuna 0:9f1d9b302ed4 180 }
JulioDLuna 0:9f1d9b302ed4 181 // LLama al Barrido del Display
JulioDLuna 0:9f1d9b302ed4 182 if (flag1==TRUE)
JulioDLuna 0:9f1d9b302ed4 183 {
JulioDLuna 0:9f1d9b302ed4 184 if (mode==1)
JulioDLuna 0:9f1d9b302ed4 185 {
JulioDLuna 0:9f1d9b302ed4 186 Numeros[i]=Cadena[i+nchar]; // Aqui está el ptroblema!!!!
JulioDLuna 0:9f1d9b302ed4 187 if (nchar >= Size_String) nchar=0; // Restablece el contador de caractres
JulioDLuna 0:9f1d9b302ed4 188 if (i==4)
JulioDLuna 0:9f1d9b302ed4 189 {
JulioDLuna 0:9f1d9b302ed4 190 i=0;
JulioDLuna 0:9f1d9b302ed4 191 mode=0; // Nos vamos a modo 0
JulioDLuna 0:9f1d9b302ed4 192 }
JulioDLuna 0:9f1d9b302ed4 193 }
JulioDLuna 0:9f1d9b302ed4 194 Anodos=Digitos[4]; // Apaga todos los Digitos (Evita fantasmas)
JulioDLuna 0:9f1d9b302ed4 195 Catodos=Segmentos[Numeros[i]]; // Actualiza los segmentos
JulioDLuna 0:9f1d9b302ed4 196 if (i==4) Catodos=(Segmentos[Numeros[i]]& 0xFE); // Enciende el punto decimal
JulioDLuna 0:9f1d9b302ed4 197 Anodos=Digitos[i]; // Activa el Digito en cuestión
JulioDLuna 0:9f1d9b302ed4 198 i++; // Apunta al siguiente dígito
JulioDLuna 0:9f1d9b302ed4 199 if (i==4) // Es el últino digito?
JulioDLuna 0:9f1d9b302ed4 200 {
JulioDLuna 0:9f1d9b302ed4 201 i=0; // Reinicia el Barriodo
JulioDLuna 0:9f1d9b302ed4 202 mode=0; // Nos vamos a modo 0
JulioDLuna 0:9f1d9b302ed4 203 Red_Led=!Red_Led; // Parpadeo del Led Rojo
JulioDLuna 0:9f1d9b302ed4 204 }
JulioDLuna 0:9f1d9b302ed4 205 flag1=FALSE; // Apaga la Bandera 1
JulioDLuna 0:9f1d9b302ed4 206 }
JulioDLuna 0:9f1d9b302ed4 207 if (flag2==TRUE) // Está puesta la Bandera 2?
JulioDLuna 0:9f1d9b302ed4 208 {
JulioDLuna 0:9f1d9b302ed4 209 shift_rate--; // Decrementa el contador de Corrimientos
JulioDLuna 0:9f1d9b302ed4 210 if (!shift_rate) // Es Cero?
JulioDLuna 0:9f1d9b302ed4 211 {
JulioDLuna 0:9f1d9b302ed4 212 mode=1; // Tiempo entre desplazamientos del mensaje
JulioDLuna 0:9f1d9b302ed4 213 shift_rate = Shift_Time; // Restablece el triempo de los corrimientos
JulioDLuna 0:9f1d9b302ed4 214 nchar++; // corrimiento al siguiente conjunto de de caracteres
JulioDLuna 0:9f1d9b302ed4 215 i=0; // Restablece el índice para comenzar el Barrido
JulioDLuna 0:9f1d9b302ed4 216 }
JulioDLuna 0:9f1d9b302ed4 217 Green_Led=!Green_Led; // Parpadeo del Led Verde
JulioDLuna 0:9f1d9b302ed4 218 flag2=FALSE; // Apaga la Bandera 2
JulioDLuna 0:9f1d9b302ed4 219 }
JulioDLuna 0:9f1d9b302ed4 220 }
JulioDLuna 0:9f1d9b302ed4 221 // END while
JulioDLuna 0:9f1d9b302ed4 222 }
JulioDLuna 0:9f1d9b302ed4 223 // END main
JulioDLuna 0:9f1d9b302ed4 224
JulioDLuna 0:9f1d9b302ed4 225 /*
JulioDLuna 0:9f1d9b302ed4 226 ................................................................................
JulioDLuna 0:9f1d9b302ed4 227 : Rutinas de los Vectores de Interrupción
JulioDLuna 0:9f1d9b302ed4 228 ................................................................................
JulioDLuna 0:9f1d9b302ed4 229 */
JulioDLuna 0:9f1d9b302ed4 230 void Barrido_OnInterrupt(void) // Rutina de Atención al Ticker
JulioDLuna 0:9f1d9b302ed4 231 { //El servicio a la interrupcion van aqui!
JulioDLuna 0:9f1d9b302ed4 232 cont_1ms++;
JulioDLuna 0:9f1d9b302ed4 233 scan_rate++;
JulioDLuna 0:9f1d9b302ed4 234 counter--;
JulioDLuna 0:9f1d9b302ed4 235 if(scan_rate==4)
JulioDLuna 0:9f1d9b302ed4 236 {
JulioDLuna 0:9f1d9b302ed4 237 scan_rate=0;
JulioDLuna 0:9f1d9b302ed4 238 flag1=TRUE;
JulioDLuna 0:9f1d9b302ed4 239 }
JulioDLuna 0:9f1d9b302ed4 240 if (cont_1ms>=10)
JulioDLuna 0:9f1d9b302ed4 241 {
JulioDLuna 0:9f1d9b302ed4 242 cont_10ms++;
JulioDLuna 0:9f1d9b302ed4 243 cont_1ms=0;
JulioDLuna 0:9f1d9b302ed4 244 }
JulioDLuna 0:9f1d9b302ed4 245 if (cont_10ms>=10)
JulioDLuna 0:9f1d9b302ed4 246 {
JulioDLuna 0:9f1d9b302ed4 247 cont_100ms++;
JulioDLuna 0:9f1d9b302ed4 248 cont_10ms=0;
JulioDLuna 0:9f1d9b302ed4 249 }
JulioDLuna 0:9f1d9b302ed4 250 if (cont_100ms>=10)
JulioDLuna 0:9f1d9b302ed4 251 {
JulioDLuna 0:9f1d9b302ed4 252 cont_1s++;
JulioDLuna 0:9f1d9b302ed4 253 cont_100ms=0;
JulioDLuna 0:9f1d9b302ed4 254 }
JulioDLuna 0:9f1d9b302ed4 255 if (cont_1s>=10)
JulioDLuna 0:9f1d9b302ed4 256 {
JulioDLuna 0:9f1d9b302ed4 257 cont_1s=0;
JulioDLuna 0:9f1d9b302ed4 258 }
JulioDLuna 0:9f1d9b302ed4 259 if (!counter)
JulioDLuna 0:9f1d9b302ed4 260 {
JulioDLuna 0:9f1d9b302ed4 261 counter=300;
JulioDLuna 0:9f1d9b302ed4 262 flag2=TRUE;
JulioDLuna 0:9f1d9b302ed4 263 }
JulioDLuna 0:9f1d9b302ed4 264 }
JulioDLuna 0:9f1d9b302ed4 265 /* END Events */ // Rutinas de Atención a Interrupciones
JulioDLuna 0:9f1d9b302ed4 266
JulioDLuna 0:9f1d9b302ed4 267
JulioDLuna 0:9f1d9b302ed4 268 ////////////////////////// BARRIDO DEL DISPLAY ////////////////////////////////////
JulioDLuna 0:9f1d9b302ed4 269 void Display()
JulioDLuna 0:9f1d9b302ed4 270 {
JulioDLuna 0:9f1d9b302ed4 271 // Barrido del Display //
JulioDLuna 0:9f1d9b302ed4 272 /*if (Flag2==TRUE)
JulioDLuna 0:9f1d9b302ed4 273 {
JulioDLuna 0:9f1d9b302ed4 274
JulioDLuna 0:9f1d9b302ed4 275 Anodos=Digitos[4]; // Evita Fantasmas
JulioDLuna 0:9f1d9b302ed4 276 Catodos=Segmentos[copia[i]];
JulioDLuna 0:9f1d9b302ed4 277 Anodos=Digitos[i];
JulioDLuna 0:9f1d9b302ed4 278 i++;
JulioDLuna 0:9f1d9b302ed4 279 if (i==4)
JulioDLuna 0:9f1d9b302ed4 280 { //PROBLEMA?
JulioDLuna 0:9f1d9b302ed4 281 i=0;
JulioDLuna 0:9f1d9b302ed4 282
JulioDLuna 0:9f1d9b302ed4 283 }
JulioDLuna 0:9f1d9b302ed4 284 Flag1=FALSE;
JulioDLuna 0:9f1d9b302ed4 285 } */
JulioDLuna 0:9f1d9b302ed4 286 }
JulioDLuna 0:9f1d9b302ed4 287 // End Display
JulioDLuna 0:9f1d9b302ed4 288
JulioDLuna 0:9f1d9b302ed4 289 ////////////////////////// FUNCIONES ESTADO DEL BAÑO ////////////////////////////////////
JulioDLuna 0:9f1d9b302ed4 290 bool BanoDisponible()
JulioDLuna 0:9f1d9b302ed4 291 {
JulioDLuna 0:9f1d9b302ed4 292 Luz=0;
JulioDLuna 0:9f1d9b302ed4 293 Ventilador=0; //Luz y entilador apagados
JulioDLuna 0:9f1d9b302ed4 294 Seguro=0; //Seguro desactivado
JulioDLuna 0:9f1d9b302ed4 295 Green=0;
JulioDLuna 0:9f1d9b302ed4 296 Red=1;
JulioDLuna 0:9f1d9b302ed4 297 Blue=1;
JulioDLuna 0:9f1d9b302ed4 298 control=2;
JulioDLuna 0:9f1d9b302ed4 299 Mensaje();
JulioDLuna 0:9f1d9b302ed4 300 return true;
JulioDLuna 0:9f1d9b302ed4 301 }
JulioDLuna 0:9f1d9b302ed4 302
JulioDLuna 0:9f1d9b302ed4 303 bool BanoOcupado()
JulioDLuna 0:9f1d9b302ed4 304 {
JulioDLuna 0:9f1d9b302ed4 305 Luz=1;
JulioDLuna 0:9f1d9b302ed4 306 Ventilador=1; //Luz y ventilador encendidos
JulioDLuna 0:9f1d9b302ed4 307 Seguro=1; // Seguro Activado
JulioDLuna 0:9f1d9b302ed4 308 Red=0;
JulioDLuna 0:9f1d9b302ed4 309 Green=1;
JulioDLuna 0:9f1d9b302ed4 310 Blue=1;
JulioDLuna 0:9f1d9b302ed4 311 control=1;
JulioDLuna 0:9f1d9b302ed4 312 Mensaje();
JulioDLuna 0:9f1d9b302ed4 313 return true;
JulioDLuna 0:9f1d9b302ed4 314 }
JulioDLuna 0:9f1d9b302ed4 315
JulioDLuna 0:9f1d9b302ed4 316 bool PuertaAbierta()
JulioDLuna 0:9f1d9b302ed4 317 {
JulioDLuna 0:9f1d9b302ed4 318 Luz=1;
JulioDLuna 0:9f1d9b302ed4 319 Ventilador=1;
JulioDLuna 0:9f1d9b302ed4 320 Green=1;
JulioDLuna 0:9f1d9b302ed4 321 Red=0;
JulioDLuna 0:9f1d9b302ed4 322 Blue=0;
JulioDLuna 0:9f1d9b302ed4 323 control=3;
JulioDLuna 0:9f1d9b302ed4 324 Mensaje();
JulioDLuna 0:9f1d9b302ed4 325 return true;
JulioDLuna 0:9f1d9b302ed4 326 }
JulioDLuna 0:9f1d9b302ed4 327 ////////////////////////// MENSAJES ////////////////////////////////////
JulioDLuna 0:9f1d9b302ed4 328 void Mensaje()
JulioDLuna 0:9f1d9b302ed4 329 {
JulioDLuna 0:9f1d9b302ed4 330 //corrimiento de mensaje//
JulioDLuna 0:9f1d9b302ed4 331 switch (control)
JulioDLuna 0:9f1d9b302ed4 332 {
JulioDLuna 0:9f1d9b302ed4 333 case 1:
JulioDLuna 0:9f1d9b302ed4 334 for(uint8_t o=0;o<=13;o++){
JulioDLuna 0:9f1d9b302ed4 335 Cadena[o] = Mensaje1[o];
JulioDLuna 0:9f1d9b302ed4 336 }
JulioDLuna 0:9f1d9b302ed4 337 break;
JulioDLuna 0:9f1d9b302ed4 338 case 2:
JulioDLuna 0:9f1d9b302ed4 339 for(uint8_t o=0;o<=13;o++){
JulioDLuna 0:9f1d9b302ed4 340 Cadena[o] = Mensaje2[o];
JulioDLuna 0:9f1d9b302ed4 341 }
JulioDLuna 0:9f1d9b302ed4 342 break;
JulioDLuna 0:9f1d9b302ed4 343 case 3:
JulioDLuna 0:9f1d9b302ed4 344 for(uint8_t o=0;o<=13;o++){
JulioDLuna 0:9f1d9b302ed4 345 Cadena[o] = Mensaje3[o];
JulioDLuna 0:9f1d9b302ed4 346 }
JulioDLuna 0:9f1d9b302ed4 347 break;
JulioDLuna 0:9f1d9b302ed4 348 }
JulioDLuna 0:9f1d9b302ed4 349 }
JulioDLuna 0:9f1d9b302ed4 350 // END Mbed