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.
Dependencies: mbed
Diff: main.cpp
- Revision:
- 1:dfa13453f7d2
- Parent:
- 0:9f1d9b302ed4
--- 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 ////////////////////////////////////