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.
Diff: main.cpp
- Revision:
- 1:dfa13453f7d2
- Parent:
- 0:9f1d9b302ed4
diff -r 9f1d9b302ed4 -r dfa13453f7d2 main.cpp --- a/main.cpp Fri May 31 00:20:46 2019 +0000 +++ b/main.cpp Fri May 31 01:42:15 2019 +0000 @@ -38,20 +38,18 @@ : Definiciones :............................................................................... */ -#define On 0 -#define off 1 -#define TRUE 1 -#define FALSE 0 +#define TRUE 1 +#define FALSE 0 +#define On 0 +#define off 1 #define hold 2 // Estado para boton mantenido #define release 3 // Estado para boton liberado -#define TRUE 1 -#define FALSE 0 #define Ticker_Time 1000 // Tiempo del Ticker (us) #define Rate_Time 2 // Tiempo de Encendido de los Digitos (ms) #define Scan_Time 2 // Tiempo de Barrido del Display (ms) #define Shift_Time 2 // Tiempo de corrimiento (x Counter_Time) #define Counter_Time 100 // Tiempo de counter (ms) -#define Size_String 20 // Tamaño del Buffer de Caracteres +#define Size_String 13 // Tamaño del Buffer de Caracteres #define Digit_Null 0xFF // Valor para apagar los Segmentos #define Degree_Symbol 0x0F // Valor para el Símbolo de Grados /* @@ -80,14 +78,13 @@ | Variables Globales de Usuario +------------------------------------------------------------------------------- */ -uint16_t Rate=325; // 1000us=1ms +uint16_t Rate=340; // 1000us=1ms uint8_t cont_1ms=0; uint8_t cont_10ms=0; uint8_t cont_100ms=0; uint8_t cont_1s=0; bool Flag1=FALSE; -bool Flag2=FALSE; -uint8_t u=0; +bool Flag2=FALSE; //Para el DISPLAY de 7 segmentos: /*Para CATODO COMUN: @@ -104,16 +101,16 @@ // 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 // 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 - 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}; -// Millares,Centenas,Decenas,Unidades +// Millares,Centenas,Decenas,Unidades uint8_t Digitos[]={0x01, 0x02, 0x04, 0x08, 0x00, 0xFF}; // Para descomponer el valor en multiplos //Multiplos[]={Millares,Centenas,Decenas,Unidades} //Utilizar C.I. 74LS125 como Latch para c/u de los segmentos del Display -uint8_t Mensaje1[]={36,36,24,12,30,25,10,13,24,36,36,36}; // MENSAJE Ocupado -uint8_t Mensaje2[]={36,36,13,18,28,25,24,23,18,11,21,14.36,36}; // MENSAJE Disponible -uint8_t Mensaje3[]={36,36,11,18,14,23,31,14,23,18,13,24,36,36}; // MENSAJE Bienvenido -uint8_t Numeros[]={11,10,23,24,36,36,36,36}; //MENSAJE INICIAL Bano -uint8_t Cadena[]={11,18,14,23,31,14,23,18,13,24,36,36}; //BUFFER Bienvenidos +uint8_t Mensaje1[]={36,36,24,12,30,25,10,13,24,36,36,36,36}; // MENSAJE " Ocupado " +uint8_t Mensaje2[]={36,36,13,18,28,25,24,23,18,11,21,14,36}; // MENSAJE " Disponible " +uint8_t Mensaje3[]={36,36,11,18,14,23,31,14,23,18,13,24,36}; // MENSAJE " Bienvenido " +uint8_t Numeros[]={36,36,36,36,36,11,10,23,24,36,36,36,36}; //MENSAJE INICIAL " Bano " +uint8_t Cadena[]={36,11,18,14,23,31,14,23,18,13,24,36,36}; //BUFFER " Bienvenidos " uint8_t scan_rate = Scan_Time ; uint8_t shift_rate= Shift_Time; uint16_t counter=1250; @@ -179,46 +176,9 @@ PuertaAbierta(); } // LLama al Barrido del Display -if (flag1==TRUE) - { - if (mode==1) - { - Numeros[i]=Cadena[i+nchar]; // Aqui está el ptroblema!!!! - if (nchar >= Size_String) nchar=0; // Restablece el contador de caractres - if (i==4) - { - i=0; - mode=0; // Nos vamos a modo 0 - } - } - Anodos=Digitos[4]; // Apaga todos los Digitos (Evita fantasmas) - Catodos=Segmentos[Numeros[i]]; // Actualiza los segmentos - if (i==4) Catodos=(Segmentos[Numeros[i]]& 0xFE); // Enciende el punto decimal - Anodos=Digitos[i]; // Activa el Digito en cuestión - i++; // Apunta al siguiente dígito - if (i==4) // Es el últino digito? - { - i=0; // Reinicia el Barriodo - mode=0; // Nos vamos a modo 0 - Red_Led=!Red_Led; // Parpadeo del Led Rojo - } - flag1=FALSE; // Apaga la Bandera 1 - } - if (flag2==TRUE) // Está puesta la Bandera 2? - { - shift_rate--; // Decrementa el contador de Corrimientos - if (!shift_rate) // Es Cero? - { - mode=1; // Tiempo entre desplazamientos del mensaje - shift_rate = Shift_Time; // Restablece el triempo de los corrimientos - nchar++; // corrimiento al siguiente conjunto de de caracteres - i=0; // Restablece el índice para comenzar el Barrido - } - Green_Led=!Green_Led; // Parpadeo del Led Verde - flag2=FALSE; // Apaga la Bandera 2 - } - } + Display(); // END while + } } // END main @@ -269,21 +229,46 @@ void Display() { // Barrido del Display // - /*if (Flag2==TRUE) - { - - Anodos=Digitos[4]; // Evita Fantasmas - Catodos=Segmentos[copia[i]]; - Anodos=Digitos[i]; - i++; - if (i==4) - { //PROBLEMA? - i=0; - - } - Flag1=FALSE; - } */ -} +if (flag1==TRUE) + { + if (mode==1) + { + Numeros[i]=Cadena[i+nchar]; // Aqui está el ptroblema!!!! + if (nchar >= Size_String) nchar=0; // Restablece el contador de caractres + if (i==4) + { + i=0; + mode=0; // Nos vamos a modo 0 + } + } + Anodos=Digitos[4]; // Apaga todos los Digitos (Evita fantasmas) + Catodos=Segmentos[Numeros[i]]; // Actualiza los segmentos + if (i==4) Catodos=(Segmentos[Numeros[i]]& 0xFE); // Enciende el punto decimal + Anodos=Digitos[i]; // Activa el Digito en cuestión + i++; // Apunta al siguiente dígito + if (i==4) // Es el últino digito? + { + i=0; // Reinicia el Barriodo + mode=0; // Nos vamos a modo 0 + Red_Led=!Red_Led; // Parpadeo del Led Rojo + } + flag1=FALSE; // Apaga la Bandera 1 + } + if (flag2==TRUE) // Está puesta la Bandera 2? + { + shift_rate--; // Decrementa el contador de Corrimientos + if (!shift_rate) // Es Cero? + { + mode=1; // Tiempo entre desplazamientos del mensaje + shift_rate = Shift_Time; // Restablece el triempo de los corrimientos + nchar++; // corrimiento al siguiente conjunto de de caracteres + i=0; // Restablece el índice para comenzar el Barrido + } + Green_Led=!Green_Led; // Parpadeo del Led Verde + flag2=FALSE; // Apaga la Bandera 2 + } + } + // End Display ////////////////////////// FUNCIONES ESTADO DEL BAÑO ////////////////////////////////////