Julio Daniel Luna Villanueva / Mbed 2 deprecated FRDM_KL46Z_ProyEnsam

Dependencies:   mbed

Committer:
JulioDLuna
Date:
Fri May 31 01:42:15 2019 +0000
Revision:
1:dfa13453f7d2
Parent:
0:9f1d9b302ed4
Puerta al 100, mensajes sin basura

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 1:dfa13453f7d2 41 #define TRUE 1
JulioDLuna 1:dfa13453f7d2 42 #define FALSE 0
JulioDLuna 1:dfa13453f7d2 43 #define On 0
JulioDLuna 1:dfa13453f7d2 44 #define off 1
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 Ticker_Time 1000 // Tiempo del Ticker (us)
JulioDLuna 0:9f1d9b302ed4 48 #define Rate_Time 2 // Tiempo de Encendido de los Digitos (ms)
JulioDLuna 0:9f1d9b302ed4 49 #define Scan_Time 2 // Tiempo de Barrido del Display (ms)
JulioDLuna 0:9f1d9b302ed4 50 #define Shift_Time 2 // Tiempo de corrimiento (x Counter_Time)
JulioDLuna 0:9f1d9b302ed4 51 #define Counter_Time 100 // Tiempo de counter (ms)
JulioDLuna 1:dfa13453f7d2 52 #define Size_String 13 // Tamaño del Buffer de Caracteres
JulioDLuna 0:9f1d9b302ed4 53 #define Digit_Null 0xFF // Valor para apagar los Segmentos
JulioDLuna 0:9f1d9b302ed4 54 #define Degree_Symbol 0x0F // Valor para el Símbolo de Grados
JulioDLuna 0:9f1d9b302ed4 55 /*
JulioDLuna 0:9f1d9b302ed4 56 +-------------------------------------------------------------------------------
JulioDLuna 0:9f1d9b302ed4 57 | Configuración de Puertos
JulioDLuna 0:9f1d9b302ed4 58 +-------------------------------------------------------------------------------
JulioDLuna 0:9f1d9b302ed4 59 */
JulioDLuna 0:9f1d9b302ed4 60 Ticker Barrido; // Interrupción del Timer
JulioDLuna 0:9f1d9b302ed4 61 BusOut Anodos(PTA14, PTA15, PTA16, PTA17); // Salidas a los anodos del display: A4 A3 A2 A1
JulioDLuna 0:9f1d9b302ed4 62 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 63 DigitalOut Green_Led (PTD5); // Led de Actividad del Programa
JulioDLuna 0:9f1d9b302ed4 64 DigitalOut Red_Led (PTE29); // Led de Actividad del Programa
JulioDLuna 0:9f1d9b302ed4 65
JulioDLuna 0:9f1d9b302ed4 66 DigitalIn Selector_seguro(PTD3);
JulioDLuna 0:9f1d9b302ed4 67 DigitalIn Limit_switch(PTB20);
JulioDLuna 0:9f1d9b302ed4 68 DigitalOut Ventilador(PTD4); //Relé
JulioDLuna 0:9f1d9b302ed4 69 DigitalOut Luz(PTD7); //Relé
JulioDLuna 0:9f1d9b302ed4 70 DigitalOut Seguro(PTD6); //Relé
JulioDLuna 0:9f1d9b302ed4 71 DigitalOut Red(PTE6);
JulioDLuna 0:9f1d9b302ed4 72 DigitalOut Green(PTE3);
JulioDLuna 0:9f1d9b302ed4 73 DigitalOut Blue(PTE2);
JulioDLuna 0:9f1d9b302ed4 74 DigitalOut Buzzer(PTE31);
JulioDLuna 0:9f1d9b302ed4 75
JulioDLuna 0:9f1d9b302ed4 76 /*
JulioDLuna 0:9f1d9b302ed4 77 +-------------------------------------------------------------------------------
JulioDLuna 0:9f1d9b302ed4 78 | Variables Globales de Usuario
JulioDLuna 0:9f1d9b302ed4 79 +-------------------------------------------------------------------------------
JulioDLuna 0:9f1d9b302ed4 80 */
JulioDLuna 1:dfa13453f7d2 81 uint16_t Rate=340; // 1000us=1ms
JulioDLuna 0:9f1d9b302ed4 82 uint8_t cont_1ms=0;
JulioDLuna 0:9f1d9b302ed4 83 uint8_t cont_10ms=0;
JulioDLuna 0:9f1d9b302ed4 84 uint8_t cont_100ms=0;
JulioDLuna 0:9f1d9b302ed4 85 uint8_t cont_1s=0;
JulioDLuna 0:9f1d9b302ed4 86 bool Flag1=FALSE;
JulioDLuna 1:dfa13453f7d2 87 bool Flag2=FALSE;
JulioDLuna 0:9f1d9b302ed4 88
JulioDLuna 0:9f1d9b302ed4 89 //Para el DISPLAY de 7 segmentos:
JulioDLuna 0:9f1d9b302ed4 90 /*Para CATODO COMUN:
JulioDLuna 0:9f1d9b302ed4 91 // 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 92 //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 93 // Millares,Centenas,Decenas,Unidades
JulioDLuna 0:9f1d9b302ed4 94 //uint8_t Digitos[]={0x0E, 0x0D, 0x0B, 0x07};
JulioDLuna 0:9f1d9b302ed4 95 // Para descomponer el valor en multiplos
JulioDLuna 0:9f1d9b302ed4 96 //Multiplos[]={Millares,Centenas,Decenas,Unidades}
JulioDLuna 0:9f1d9b302ed4 97 Utilizar C.I. 74LS126 como Latch para c/u de los segmentos del Display*/
JulioDLuna 0:9f1d9b302ed4 98
JulioDLuna 0:9f1d9b302ed4 99
JulioDLuna 0:9f1d9b302ed4 100 //Para ANODO COMUN:
JulioDLuna 0:9f1d9b302ed4 101 // 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 102 // 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 103 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 1:dfa13453f7d2 104 // Millares,Centenas,Decenas,Unidades
JulioDLuna 0:9f1d9b302ed4 105 uint8_t Digitos[]={0x01, 0x02, 0x04, 0x08, 0x00, 0xFF};
JulioDLuna 0:9f1d9b302ed4 106 // Para descomponer el valor en multiplos
JulioDLuna 0:9f1d9b302ed4 107 //Multiplos[]={Millares,Centenas,Decenas,Unidades}
JulioDLuna 0:9f1d9b302ed4 108 //Utilizar C.I. 74LS125 como Latch para c/u de los segmentos del Display
JulioDLuna 1:dfa13453f7d2 109 uint8_t Mensaje1[]={36,36,24,12,30,25,10,13,24,36,36,36,36}; // MENSAJE " Ocupado "
JulioDLuna 1:dfa13453f7d2 110 uint8_t Mensaje2[]={36,36,13,18,28,25,24,23,18,11,21,14,36}; // MENSAJE " Disponible "
JulioDLuna 1:dfa13453f7d2 111 uint8_t Mensaje3[]={36,36,11,18,14,23,31,14,23,18,13,24,36}; // MENSAJE " Bienvenido "
JulioDLuna 1:dfa13453f7d2 112 uint8_t Numeros[]={36,36,36,36,36,11,10,23,24,36,36,36,36}; //MENSAJE INICIAL " Bano "
JulioDLuna 1:dfa13453f7d2 113 uint8_t Cadena[]={36,11,18,14,23,31,14,23,18,13,24,36,36}; //BUFFER " Bienvenidos "
JulioDLuna 0:9f1d9b302ed4 114 uint8_t scan_rate = Scan_Time ;
JulioDLuna 0:9f1d9b302ed4 115 uint8_t shift_rate= Shift_Time;
JulioDLuna 0:9f1d9b302ed4 116 uint16_t counter=1250;
JulioDLuna 0:9f1d9b302ed4 117 uint8_t i=0;
JulioDLuna 0:9f1d9b302ed4 118 uint8_t nchar=0;
JulioDLuna 0:9f1d9b302ed4 119 bool flag1=FALSE;
JulioDLuna 0:9f1d9b302ed4 120 bool flag2=FALSE;
JulioDLuna 0:9f1d9b302ed4 121 bool mode=0;
JulioDLuna 0:9f1d9b302ed4 122 uint8_t punto_decimal=0; //Posición del Punto Decimal: 0=sin punto, 1=unidades, 2=decenas, 3=centemas 4=millares,
JulioDLuna 0:9f1d9b302ed4 123 uint8_t control=0;
JulioDLuna 0:9f1d9b302ed4 124 /*
JulioDLuna 0:9f1d9b302ed4 125 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
JulioDLuna 0:9f1d9b302ed4 126 | Definición de los Vectores de Interrupción
JulioDLuna 0:9f1d9b302ed4 127 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
JulioDLuna 0:9f1d9b302ed4 128 */
JulioDLuna 0:9f1d9b302ed4 129 void Barrido_OnInterrupt(void);
JulioDLuna 0:9f1d9b302ed4 130 /*
JulioDLuna 0:9f1d9b302ed4 131 ________________________________________________________________________________
JulioDLuna 0:9f1d9b302ed4 132 |
JulioDLuna 0:9f1d9b302ed4 133 | Funciones Prototipo
JulioDLuna 0:9f1d9b302ed4 134 |_______________________________________________________________________________
JulioDLuna 0:9f1d9b302ed4 135 */
JulioDLuna 0:9f1d9b302ed4 136 // Las Funciones Prototipo van aquí !
JulioDLuna 0:9f1d9b302ed4 137 bool BanoDisponible(void);
JulioDLuna 0:9f1d9b302ed4 138 bool BanoOcupado(void);
JulioDLuna 0:9f1d9b302ed4 139 bool PuertaAbierta(void);
JulioDLuna 0:9f1d9b302ed4 140 void Display(void);
JulioDLuna 0:9f1d9b302ed4 141 void Mensaje(void);
JulioDLuna 0:9f1d9b302ed4 142 /*
JulioDLuna 0:9f1d9b302ed4 143 #===============================================================================
JulioDLuna 0:9f1d9b302ed4 144 |
JulioDLuna 0:9f1d9b302ed4 145 | P R O G R A M A P R I N C I P A L
JulioDLuna 0:9f1d9b302ed4 146 |
JulioDLuna 0:9f1d9b302ed4 147 #===============================================================================
JulioDLuna 0:9f1d9b302ed4 148 */
JulioDLuna 0:9f1d9b302ed4 149
JulioDLuna 0:9f1d9b302ed4 150 ////////////////////////////// PROGRAMA PRINCIPAL //////////////////////////////////////////
JulioDLuna 0:9f1d9b302ed4 151 int main()
JulioDLuna 0:9f1d9b302ed4 152 {
JulioDLuna 0:9f1d9b302ed4 153 Buzzer=1;
JulioDLuna 0:9f1d9b302ed4 154 wait(0.020);
JulioDLuna 0:9f1d9b302ed4 155 Buzzer=0;
JulioDLuna 0:9f1d9b302ed4 156 Red=0;
JulioDLuna 0:9f1d9b302ed4 157 Blue=1;
JulioDLuna 0:9f1d9b302ed4 158 Green=0;
JulioDLuna 0:9f1d9b302ed4 159 wait(0.5);
JulioDLuna 0:9f1d9b302ed4 160 Barrido.attach_us(&Barrido_OnInterrupt, Rate); // Le asigna el periodo de barrido cada 10 ms
JulioDLuna 0:9f1d9b302ed4 161 while(true)
JulioDLuna 0:9f1d9b302ed4 162 {
JulioDLuna 0:9f1d9b302ed4 163 if(Limit_switch==1 && Selector_seguro==0)
JulioDLuna 0:9f1d9b302ed4 164 { //Puerta Cerrada (BAÑO DISPONIBLE)
JulioDLuna 0:9f1d9b302ed4 165 Seguro=0; //Seguro desactivado
JulioDLuna 0:9f1d9b302ed4 166 BanoDisponible();
JulioDLuna 0:9f1d9b302ed4 167 }
JulioDLuna 0:9f1d9b302ed4 168 if(Limit_switch==1 && Selector_seguro==1)
JulioDLuna 0:9f1d9b302ed4 169 { //Puerta Cerrada (BAÑO OCUPADO)
JulioDLuna 0:9f1d9b302ed4 170 Seguro=1; //Seguro activado
JulioDLuna 0:9f1d9b302ed4 171 BanoOcupado();
JulioDLuna 0:9f1d9b302ed4 172 }
JulioDLuna 0:9f1d9b302ed4 173 if(Limit_switch==0 && Selector_seguro==0)
JulioDLuna 0:9f1d9b302ed4 174 { //Puerta Abierta
JulioDLuna 0:9f1d9b302ed4 175 Seguro=0; //Desactivado
JulioDLuna 0:9f1d9b302ed4 176 PuertaAbierta();
JulioDLuna 0:9f1d9b302ed4 177 }
JulioDLuna 0:9f1d9b302ed4 178 // LLama al Barrido del Display
JulioDLuna 1:dfa13453f7d2 179 Display();
JulioDLuna 0:9f1d9b302ed4 180 // END while
JulioDLuna 1:dfa13453f7d2 181 }
JulioDLuna 0:9f1d9b302ed4 182 }
JulioDLuna 0:9f1d9b302ed4 183 // END main
JulioDLuna 0:9f1d9b302ed4 184
JulioDLuna 0:9f1d9b302ed4 185 /*
JulioDLuna 0:9f1d9b302ed4 186 ................................................................................
JulioDLuna 0:9f1d9b302ed4 187 : Rutinas de los Vectores de Interrupción
JulioDLuna 0:9f1d9b302ed4 188 ................................................................................
JulioDLuna 0:9f1d9b302ed4 189 */
JulioDLuna 0:9f1d9b302ed4 190 void Barrido_OnInterrupt(void) // Rutina de Atención al Ticker
JulioDLuna 0:9f1d9b302ed4 191 { //El servicio a la interrupcion van aqui!
JulioDLuna 0:9f1d9b302ed4 192 cont_1ms++;
JulioDLuna 0:9f1d9b302ed4 193 scan_rate++;
JulioDLuna 0:9f1d9b302ed4 194 counter--;
JulioDLuna 0:9f1d9b302ed4 195 if(scan_rate==4)
JulioDLuna 0:9f1d9b302ed4 196 {
JulioDLuna 0:9f1d9b302ed4 197 scan_rate=0;
JulioDLuna 0:9f1d9b302ed4 198 flag1=TRUE;
JulioDLuna 0:9f1d9b302ed4 199 }
JulioDLuna 0:9f1d9b302ed4 200 if (cont_1ms>=10)
JulioDLuna 0:9f1d9b302ed4 201 {
JulioDLuna 0:9f1d9b302ed4 202 cont_10ms++;
JulioDLuna 0:9f1d9b302ed4 203 cont_1ms=0;
JulioDLuna 0:9f1d9b302ed4 204 }
JulioDLuna 0:9f1d9b302ed4 205 if (cont_10ms>=10)
JulioDLuna 0:9f1d9b302ed4 206 {
JulioDLuna 0:9f1d9b302ed4 207 cont_100ms++;
JulioDLuna 0:9f1d9b302ed4 208 cont_10ms=0;
JulioDLuna 0:9f1d9b302ed4 209 }
JulioDLuna 0:9f1d9b302ed4 210 if (cont_100ms>=10)
JulioDLuna 0:9f1d9b302ed4 211 {
JulioDLuna 0:9f1d9b302ed4 212 cont_1s++;
JulioDLuna 0:9f1d9b302ed4 213 cont_100ms=0;
JulioDLuna 0:9f1d9b302ed4 214 }
JulioDLuna 0:9f1d9b302ed4 215 if (cont_1s>=10)
JulioDLuna 0:9f1d9b302ed4 216 {
JulioDLuna 0:9f1d9b302ed4 217 cont_1s=0;
JulioDLuna 0:9f1d9b302ed4 218 }
JulioDLuna 0:9f1d9b302ed4 219 if (!counter)
JulioDLuna 0:9f1d9b302ed4 220 {
JulioDLuna 0:9f1d9b302ed4 221 counter=300;
JulioDLuna 0:9f1d9b302ed4 222 flag2=TRUE;
JulioDLuna 0:9f1d9b302ed4 223 }
JulioDLuna 0:9f1d9b302ed4 224 }
JulioDLuna 0:9f1d9b302ed4 225 /* END Events */ // Rutinas de Atención a Interrupciones
JulioDLuna 0:9f1d9b302ed4 226
JulioDLuna 0:9f1d9b302ed4 227
JulioDLuna 0:9f1d9b302ed4 228 ////////////////////////// BARRIDO DEL DISPLAY ////////////////////////////////////
JulioDLuna 0:9f1d9b302ed4 229 void Display()
JulioDLuna 0:9f1d9b302ed4 230 {
JulioDLuna 0:9f1d9b302ed4 231 // Barrido del Display //
JulioDLuna 1:dfa13453f7d2 232 if (flag1==TRUE)
JulioDLuna 1:dfa13453f7d2 233 {
JulioDLuna 1:dfa13453f7d2 234 if (mode==1)
JulioDLuna 1:dfa13453f7d2 235 {
JulioDLuna 1:dfa13453f7d2 236 Numeros[i]=Cadena[i+nchar]; // Aqui está el ptroblema!!!!
JulioDLuna 1:dfa13453f7d2 237 if (nchar >= Size_String) nchar=0; // Restablece el contador de caractres
JulioDLuna 1:dfa13453f7d2 238 if (i==4)
JulioDLuna 1:dfa13453f7d2 239 {
JulioDLuna 1:dfa13453f7d2 240 i=0;
JulioDLuna 1:dfa13453f7d2 241 mode=0; // Nos vamos a modo 0
JulioDLuna 1:dfa13453f7d2 242 }
JulioDLuna 1:dfa13453f7d2 243 }
JulioDLuna 1:dfa13453f7d2 244 Anodos=Digitos[4]; // Apaga todos los Digitos (Evita fantasmas)
JulioDLuna 1:dfa13453f7d2 245 Catodos=Segmentos[Numeros[i]]; // Actualiza los segmentos
JulioDLuna 1:dfa13453f7d2 246 if (i==4) Catodos=(Segmentos[Numeros[i]]& 0xFE); // Enciende el punto decimal
JulioDLuna 1:dfa13453f7d2 247 Anodos=Digitos[i]; // Activa el Digito en cuestión
JulioDLuna 1:dfa13453f7d2 248 i++; // Apunta al siguiente dígito
JulioDLuna 1:dfa13453f7d2 249 if (i==4) // Es el últino digito?
JulioDLuna 1:dfa13453f7d2 250 {
JulioDLuna 1:dfa13453f7d2 251 i=0; // Reinicia el Barriodo
JulioDLuna 1:dfa13453f7d2 252 mode=0; // Nos vamos a modo 0
JulioDLuna 1:dfa13453f7d2 253 Red_Led=!Red_Led; // Parpadeo del Led Rojo
JulioDLuna 1:dfa13453f7d2 254 }
JulioDLuna 1:dfa13453f7d2 255 flag1=FALSE; // Apaga la Bandera 1
JulioDLuna 1:dfa13453f7d2 256 }
JulioDLuna 1:dfa13453f7d2 257 if (flag2==TRUE) // Está puesta la Bandera 2?
JulioDLuna 1:dfa13453f7d2 258 {
JulioDLuna 1:dfa13453f7d2 259 shift_rate--; // Decrementa el contador de Corrimientos
JulioDLuna 1:dfa13453f7d2 260 if (!shift_rate) // Es Cero?
JulioDLuna 1:dfa13453f7d2 261 {
JulioDLuna 1:dfa13453f7d2 262 mode=1; // Tiempo entre desplazamientos del mensaje
JulioDLuna 1:dfa13453f7d2 263 shift_rate = Shift_Time; // Restablece el triempo de los corrimientos
JulioDLuna 1:dfa13453f7d2 264 nchar++; // corrimiento al siguiente conjunto de de caracteres
JulioDLuna 1:dfa13453f7d2 265 i=0; // Restablece el índice para comenzar el Barrido
JulioDLuna 1:dfa13453f7d2 266 }
JulioDLuna 1:dfa13453f7d2 267 Green_Led=!Green_Led; // Parpadeo del Led Verde
JulioDLuna 1:dfa13453f7d2 268 flag2=FALSE; // Apaga la Bandera 2
JulioDLuna 1:dfa13453f7d2 269 }
JulioDLuna 1:dfa13453f7d2 270 }
JulioDLuna 1:dfa13453f7d2 271
JulioDLuna 0:9f1d9b302ed4 272 // End Display
JulioDLuna 0:9f1d9b302ed4 273
JulioDLuna 0:9f1d9b302ed4 274 ////////////////////////// FUNCIONES ESTADO DEL BAÑO ////////////////////////////////////
JulioDLuna 0:9f1d9b302ed4 275 bool BanoDisponible()
JulioDLuna 0:9f1d9b302ed4 276 {
JulioDLuna 0:9f1d9b302ed4 277 Luz=0;
JulioDLuna 0:9f1d9b302ed4 278 Ventilador=0; //Luz y entilador apagados
JulioDLuna 0:9f1d9b302ed4 279 Seguro=0; //Seguro desactivado
JulioDLuna 0:9f1d9b302ed4 280 Green=0;
JulioDLuna 0:9f1d9b302ed4 281 Red=1;
JulioDLuna 0:9f1d9b302ed4 282 Blue=1;
JulioDLuna 0:9f1d9b302ed4 283 control=2;
JulioDLuna 0:9f1d9b302ed4 284 Mensaje();
JulioDLuna 0:9f1d9b302ed4 285 return true;
JulioDLuna 0:9f1d9b302ed4 286 }
JulioDLuna 0:9f1d9b302ed4 287
JulioDLuna 0:9f1d9b302ed4 288 bool BanoOcupado()
JulioDLuna 0:9f1d9b302ed4 289 {
JulioDLuna 0:9f1d9b302ed4 290 Luz=1;
JulioDLuna 0:9f1d9b302ed4 291 Ventilador=1; //Luz y ventilador encendidos
JulioDLuna 0:9f1d9b302ed4 292 Seguro=1; // Seguro Activado
JulioDLuna 0:9f1d9b302ed4 293 Red=0;
JulioDLuna 0:9f1d9b302ed4 294 Green=1;
JulioDLuna 0:9f1d9b302ed4 295 Blue=1;
JulioDLuna 0:9f1d9b302ed4 296 control=1;
JulioDLuna 0:9f1d9b302ed4 297 Mensaje();
JulioDLuna 0:9f1d9b302ed4 298 return true;
JulioDLuna 0:9f1d9b302ed4 299 }
JulioDLuna 0:9f1d9b302ed4 300
JulioDLuna 0:9f1d9b302ed4 301 bool PuertaAbierta()
JulioDLuna 0:9f1d9b302ed4 302 {
JulioDLuna 0:9f1d9b302ed4 303 Luz=1;
JulioDLuna 0:9f1d9b302ed4 304 Ventilador=1;
JulioDLuna 0:9f1d9b302ed4 305 Green=1;
JulioDLuna 0:9f1d9b302ed4 306 Red=0;
JulioDLuna 0:9f1d9b302ed4 307 Blue=0;
JulioDLuna 0:9f1d9b302ed4 308 control=3;
JulioDLuna 0:9f1d9b302ed4 309 Mensaje();
JulioDLuna 0:9f1d9b302ed4 310 return true;
JulioDLuna 0:9f1d9b302ed4 311 }
JulioDLuna 0:9f1d9b302ed4 312 ////////////////////////// MENSAJES ////////////////////////////////////
JulioDLuna 0:9f1d9b302ed4 313 void Mensaje()
JulioDLuna 0:9f1d9b302ed4 314 {
JulioDLuna 0:9f1d9b302ed4 315 //corrimiento de mensaje//
JulioDLuna 0:9f1d9b302ed4 316 switch (control)
JulioDLuna 0:9f1d9b302ed4 317 {
JulioDLuna 0:9f1d9b302ed4 318 case 1:
JulioDLuna 0:9f1d9b302ed4 319 for(uint8_t o=0;o<=13;o++){
JulioDLuna 0:9f1d9b302ed4 320 Cadena[o] = Mensaje1[o];
JulioDLuna 0:9f1d9b302ed4 321 }
JulioDLuna 0:9f1d9b302ed4 322 break;
JulioDLuna 0:9f1d9b302ed4 323 case 2:
JulioDLuna 0:9f1d9b302ed4 324 for(uint8_t o=0;o<=13;o++){
JulioDLuna 0:9f1d9b302ed4 325 Cadena[o] = Mensaje2[o];
JulioDLuna 0:9f1d9b302ed4 326 }
JulioDLuna 0:9f1d9b302ed4 327 break;
JulioDLuna 0:9f1d9b302ed4 328 case 3:
JulioDLuna 0:9f1d9b302ed4 329 for(uint8_t o=0;o<=13;o++){
JulioDLuna 0:9f1d9b302ed4 330 Cadena[o] = Mensaje3[o];
JulioDLuna 0:9f1d9b302ed4 331 }
JulioDLuna 0:9f1d9b302ed4 332 break;
JulioDLuna 0:9f1d9b302ed4 333 }
JulioDLuna 0:9f1d9b302ed4 334 }
JulioDLuna 0:9f1d9b302ed4 335 // END Mbed