Plantilla mejorada con la libreria PinNames.h

Dependencies:   mbed

Committer:
arelicayetano
Date:
Wed Nov 06 00:33:20 2019 +0000
Revision:
3:4a298a6a4982
Parent:
2:6567d77a8394
2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
arelicayetano 2:6567d77a8394 1 /* ###########################################################################
Antulius 0:9f7581d1af6f 2 ** Archivo : main.c
arelicayetano 2:6567d77a8394 3 ** Proyecto : STM32-103C8_Barrido_Display
arelicayetano 2:6567d77a8394 4 ** Procesador : STM32F103C8
arelicayetano 2:6567d77a8394 5 ** Herramienta : Mbed
Antulius 0:9f7581d1af6f 6 ** Version : Driver 01.01
Antulius 0:9f7581d1af6f 7 ** Compilador : GNU C Compiler
Antulius 0:9f7581d1af6f 8 ** Fecha/Hora : 14-07-2015, 11:48, # CodeGen: 0
arelicayetano 2:6567d77a8394 9 ** Descripción :
Antulius 0:9f7581d1af6f 10 ** Este proyecto hace...
Antulius 0:9f7581d1af6f 11 ** This module contains user's application code.
Antulius 0:9f7581d1af6f 12 ** Componentes : GPIO, Timer, etc .
Antulius 0:9f7581d1af6f 13 ** Configuraciones : Includes, Stacks y Drivers externos
Antulius 0:9f7581d1af6f 14 ** Autores :
Antulius 0:9f7581d1af6f 15 ** ATEAM Development Group:
Antulius 0:9f7581d1af6f 16 ** - Antulio Morgado Valle
Antulius 0:9f7581d1af6f 17 **
arelicayetano 2:6567d77a8394 18 ** Versión : Beta
arelicayetano 2:6567d77a8394 19 ** Revisión : A
Antulius 0:9f7581d1af6f 20 ** Release : 0
Antulius 0:9f7581d1af6f 21 ** Bugs & Fixes :
Antulius 0:9f7581d1af6f 22 ** Date : 20/10/2019
Antulius 0:9f7581d1af6f 23 ** Added support for Led_RGB
Antulius 0:9f7581d1af6f 24 ** 22/09/2018
Antulius 0:9f7581d1af6f 25 ** Added LCD Menu, Beta version (with bugs)
Antulius 0:9f7581d1af6f 26 **
Antulius 0:9f7581d1af6f 27 ** ###########################################################################*/
Antulius 0:9f7581d1af6f 28 /*
Antulius 0:9f7581d1af6f 29 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Antulius 0:9f7581d1af6f 30 : Includes
Antulius 0:9f7581d1af6f 31 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Antulius 0:9f7581d1af6f 32 */
SAMUEL99099 1:9f2e7f4788f9 33 #include "stm32f103c8t6.h"
Antulius 0:9f7581d1af6f 34 #include "mbed.h"
Antulius 0:9f7581d1af6f 35 //#include "AnalogIn.h"
arelicayetano 2:6567d77a8394 36 //#include "ADC.h"
Antulius 0:9f7581d1af6f 37 //#include "Led_RGB.h"
SAMUEL99099 1:9f2e7f4788f9 38 #include "Serial.h"
arelicayetano 2:6567d77a8394 39 //#include "TextLCD.h"
arelicayetano 2:6567d77a8394 40 //#include "I2C.h"
arelicayetano 2:6567d77a8394 41 //#include "SPI.h"
arelicayetano 2:6567d77a8394 42 #include "stdio.h"
Antulius 0:9f7581d1af6f 43 /*
Antulius 0:9f7581d1af6f 44 :...............................................................................
Antulius 0:9f7581d1af6f 45 : Definiciones
Antulius 0:9f7581d1af6f 46 :...............................................................................
Antulius 0:9f7581d1af6f 47 */
arelicayetano 2:6567d77a8394 48 #define on 0 // Estado para boton presionado
Antulius 0:9f7581d1af6f 49 #define off 1 // Estado para boton sin presionar
Antulius 0:9f7581d1af6f 50 #define hold 2 // Estado para boton mantenido
Antulius 0:9f7581d1af6f 51 #define release 3 // Estado para boton liberado
SAMUEL99099 1:9f2e7f4788f9 52 #define FALSE 0 // Estado FALSO
SAMUEL99099 1:9f2e7f4788f9 53 #define TRUE 1 // Estado VERDADERO
arelicayetano 2:6567d77a8394 54 #define Ticker_Rate 1000 // Periodo de interrupción (us)
arelicayetano 2:6567d77a8394 55 #define Rate_Time 2 // Tiempo de Encendido de los Digitos (ms)
arelicayetano 2:6567d77a8394 56 #define Scan_Time 2 // Tiempo de Barrido del Display (ms)
arelicayetano 2:6567d77a8394 57 #define Shift_Time 10 // Tiempo de corrimiento (x Counter_Time)
arelicayetano 2:6567d77a8394 58 #define Counter_Time 100 // Tiempo de counter (ms)
arelicayetano 2:6567d77a8394 59 #define Size_String 20 // Tamaño del Buffer de Caracteres
arelicayetano 2:6567d77a8394 60 #define Digit_Null 0xFF // Valor para apagar los Segmentos
arelicayetano 2:6567d77a8394 61 #define Degree_Symbol 0x0F // Valor para el Símbolo de Grados
Antulius 0:9f7581d1af6f 62 /*
Antulius 0:9f7581d1af6f 63 +-------------------------------------------------------------------------------
arelicayetano 2:6567d77a8394 64 | Configuración de Puertos
Antulius 0:9f7581d1af6f 65 +-------------------------------------------------------------------------------
Antulius 0:9f7581d1af6f 66 */
arelicayetano 2:6567d77a8394 67
arelicayetano 2:6567d77a8394 68 DigitalOut led_monitor(LED1); // Inicializa el Led de Monitor
arelicayetano 2:6567d77a8394 69 PwmOut buzzer (PB_1); // PWM para el Buzzer
arelicayetano 2:6567d77a8394 70 AnalogIn sensor1 (PA_0); // Canal Analógico para sensor 1
arelicayetano 2:6567d77a8394 71 AnalogIn sensor2 (PA_1); // Canal Analógico para sensor 2
arelicayetano 2:6567d77a8394 72 BusIn Teclado (PB_5,PB_6,PB_7,PB_8); // Teclado Matricial
arelicayetano 3:4a298a6a4982 73 BusOut Anodos (PB_12, PB_13, PB_14, PB_15); // Anodos: (Uni Dec Cent Mill) A1 A2 A3 A4
arelicayetano 3:4a298a6a4982 74 BusOut Catodos (PA_8,PA_9,PA_10,PA_11,PA_12,PA_15,PB_3,PB_4); // Cátodos: g f a b c d e p
arelicayetano 3:4a298a6a4982 75 //BusOut Anodos (PB_15, PB_14, PB_13, PB_12); // Anodos: (Uni Dec Cent Mill) A1 A2 A3 A4
arelicayetano 3:4a298a6a4982 76 //BusOut Catodos (PB_4,PB_3,PA_15,PA_12,PA_11,PA_10,PA_9,PA_8); // Cátodos: g f a b c d e p
arelicayetano 2:6567d77a8394 77 // ***** Host PC Terminal Communication channels
arelicayetano 2:6567d77a8394 78 Serial Terminal (PA_2, PA_3); // Inicializa la comunicación serial a la PC (Tx,Rx)
arelicayetano 2:6567d77a8394 79 //Serial Terminal(USBTX, USBRX,115200);// Tx, Rx Baud Rate - Terminal Serial por USB @ 115,200 Bauds
arelicayetano 2:6567d77a8394 80 // ***** I2C Communication
arelicayetano 2:6567d77a8394 81 //I2C i2c_LCD(PB_9,PB_8,); // SDA, SCL
arelicayetano 2:6567d77a8394 82 // ***** SPI Communication
arelicayetano 2:6567d77a8394 83 //SPI spi_LCD(PA_7,PA_6,PA_5,PB_6); // MOSI, MISO, SCLK, SS
arelicayetano 2:6567d77a8394 84 Ticker Barrido; // Interrupción por Timer
arelicayetano 2:6567d77a8394 85 /*
arelicayetano 2:6567d77a8394 86 ** -------------------------------------------------------------------
arelicayetano 2:6567d77a8394 87 ** Instanciación del LCD
arelicayetano 2:6567d77a8394 88 ** -------------------------------------------------------------------
arelicayetano 2:6567d77a8394 89 */
arelicayetano 2:6567d77a8394 90 // LCD instantiation
arelicayetano 2:6567d77a8394 91 //TextLCD lcd(PTC5, PTC6, PTC8, PTC9, PTC10, PCT11, TextLCD::LCD20x2); // 4bit bus: rs, e, d4-d7
arelicayetano 2:6567d77a8394 92 //TextLCD_SPI lcd(&spi_LCD, PB_6, TextLCD::LCD16x4, TextLCD::AC780); // SPI bus, CS, LCD Type
arelicayetano 2:6567d77a8394 93 //TextLCD_I2C lcd(&i2c_LCD, 0x7E, TextLCD::LCD20x4); // I2C bus, PCF8574A Arduino Shield, LCD Type
arelicayetano 2:6567d77a8394 94
Antulius 0:9f7581d1af6f 95 /*
Antulius 0:9f7581d1af6f 96 +-------------------------------------------------------------------------------
Antulius 0:9f7581d1af6f 97 | Variables Globales de Usuario
Antulius 0:9f7581d1af6f 98 +-------------------------------------------------------------------------------
Antulius 0:9f7581d1af6f 99 */
arelicayetano 2:6567d77a8394 100 uint16_t Rate=1000; // Velocidad de barrido (1000us = 1ms)
arelicayetano 2:6567d77a8394 101 // ++++++++++++++++++++ Generador de Caracteres ++++++++++++++++++++++++++++++++
arelicayetano 2:6567d77a8394 102 // Offset: 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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
arelicayetano 2:6567d77a8394 103 //Caracter a Desplegar: 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 a e /e @ ñ [ ] U /U /_ - _ _/_ /= = == ° +/c +n +/c +u o c n /c u ^ ¬ + > ^ / v < v > i +i /i +/i ii +ii # /# J /J -J -/J | || | + /+ F +F /F +/F null ! " # $ % & ' ( ) * + - . / : ; < > ? @
arelicayetano 2:6567d77a8394 104 uint8_t Segmentos[]={0x81,0xE7,0x49,0x43,0x27,0x13,0x11,0xC7,0x01,0x03,0x05,0x31,0x99,0x61,0x19,0x1D,0x91,0x35,0xBD,0xE3,0x2D,0xB9,0x85,0x75,0x71,0x0D,0x07,0x7D,0x13,0x39,0xF1,0xB1,0xA1,0x25,0x23,0x49,0xFF,0x41,0x09,0x03,0x11,0x55,0x99,0xC3,0xA1,0x85,0xDF,0x7F,0xFB,0xDB,0x7B,0x5F,0x5B,0x0F,0x1F,0x8F,0x4F,0x2F,0x71,0x79,0x75,0x73,0xF1,0x3F,0x9F,0xCF,0x6F,0x7D,0xF9,0xF3,0x77,0xFD,0xBF,0xF7,0xEF,0xF5,0xAF,0x6D,0x37,0xE3,0xB9,0x9D,0xC7,0xBD,0xA5,0xE7,0x3D,0x67,0x1D,0x47,0x63,0x39,0x00};
arelicayetano 2:6567d77a8394 105 // ++++++++++++++++++++++ Selector de Digitos ++++++++++++++++++++++++++++++++++
arelicayetano 2:6567d77a8394 106 uint8_t Digitos[]={0x08,0x04,0x02,0x01,0x00,0x0F}; // Millares, Centenas, Decenas, Unidades, Apagados, Encendidos
arelicayetano 2:6567d77a8394 107 uint8_t Numeros[]={1,0,2,4}; // Valor a Desplegar
arelicayetano 2:6567d77a8394 108 uint8_t Cadena[]={33,0,21,10,36,14,28,18,22,14,36,35,10,12,10,29,14,23,12,24,36,36,36}; // Mensaje a Desplegar
arelicayetano 2:6567d77a8394 109 uint8_t punto_decimal=0; // Posición del punto decimal: 0=sin punto, 1=unidades, 2=decenas, 3=centemas 4=millares,
arelicayetano 2:6567d77a8394 110 uint8_t cont_1ms; // Contador de milésimas de Segundo
arelicayetano 2:6567d77a8394 111 uint8_t cont_10ms; // Contador de centésimas de Segundo
arelicayetano 2:6567d77a8394 112 uint8_t cont_100ms; // Contador de décimas de Segundo
arelicayetano 2:6567d77a8394 113 uint8_t cont_1s; // Contador de Segundos
arelicayetano 2:6567d77a8394 114 uint8_t scan_rate = Scan_Time ;
arelicayetano 2:6567d77a8394 115 uint8_t shift_rate= Shift_Time;
arelicayetano 2:6567d77a8394 116 uint8_t display_rate=10; // Display Rate = 10ms
arelicayetano 2:6567d77a8394 117 uint16_t counter=1250;
arelicayetano 2:6567d77a8394 118 uint8_t i=0;
arelicayetano 2:6567d77a8394 119 uint8_t nchar=0;
arelicayetano 2:6567d77a8394 120 bool mode=0;
arelicayetano 2:6567d77a8394 121 bool flag1=FALSE;
arelicayetano 2:6567d77a8394 122 bool flag2=FALSE;
Antulius 0:9f7581d1af6f 123
Antulius 0:9f7581d1af6f 124 /*
Antulius 0:9f7581d1af6f 125 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
arelicayetano 2:6567d77a8394 126 | Definición de Funciones Prototipo y Rutinas de los Vectores de Interrupción
Antulius 0:9f7581d1af6f 127 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Antulius 0:9f7581d1af6f 128 */
arelicayetano 2:6567d77a8394 129 void Barrido_OnInterrupt(void);
arelicayetano 2:6567d77a8394 130 /* END definitions */
Antulius 0:9f7581d1af6f 131
Antulius 0:9f7581d1af6f 132 /*
Antulius 0:9f7581d1af6f 133 #===============================================================================
Antulius 0:9f7581d1af6f 134 |
Antulius 0:9f7581d1af6f 135 | P R O G R A M A P R I N C I P A L
Antulius 0:9f7581d1af6f 136 |
Antulius 0:9f7581d1af6f 137 #===============================================================================
Antulius 0:9f7581d1af6f 138 */
Antulius 0:9f7581d1af6f 139 int main()
arelicayetano 2:6567d77a8394 140 { // Inicialización de variables, puertos e interrupciones
arelicayetano 2:6567d77a8394 141 confSysClock(); // Configure system clock (72MHz HSE clock, 48MHz USB clock)
arelicayetano 2:6567d77a8394 142 Barrido.attach_us(&Barrido_OnInterrupt, Rate); // Le asigna el periodo de barrido de 1ms (Rate=1000)
arelicayetano 2:6567d77a8394 143 Terminal.baud(115200); // Se configura la velocodad de transmisión
arelicayetano 2:6567d77a8394 144 Terminal.printf("\e[2J"); // Clear Screen
arelicayetano 2:6567d77a8394 145 Terminal.printf(" System is Wake Up!.\n\r"); // e inicia la comunicación serial
arelicayetano 2:6567d77a8394 146 Terminal.printf ("\t\e[1;37;41mInstituto Politecnico Nacional\e[0m\n\r");
arelicayetano 2:6567d77a8394 147 Terminal.printf ("\e[1;37;42mESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA\e[0m\n\r\v");
arelicayetano 2:6567d77a8394 148 Terminal.printf ("\t\e[1;34;40mBarrido \e[1;37;40mdel \e[1;32;40mDisplay \e[1;33;40mde \e[1;31;40m7 Segmentos\e[0m\n\r\v\v\e[0m");
arelicayetano 2:6567d77a8394 149
arelicayetano 2:6567d77a8394 150 Terminal.printf ("\nSelecciona el Modo de Operacion:\n\r");
arelicayetano 2:6567d77a8394 151 Terminal.printf ("Modo 0 = Normal (4 Digitos)\n\r");
arelicayetano 2:6567d77a8394 152 Terminal.printf ("Modo 1 = Corrimiento \n\r");
Antulius 0:9f7581d1af6f 153
arelicayetano 2:6567d77a8394 154 while (TRUE) // El Lazo del Programa principal está aquí !!!
arelicayetano 2:6567d77a8394 155 {
arelicayetano 2:6567d77a8394 156 if (flag1==TRUE) // Está puesta la Bandera 1 ?
arelicayetano 2:6567d77a8394 157 {
arelicayetano 2:6567d77a8394 158 if (mode==1) // Está en modo 1? (corrimiento de mensaje)
arelicayetano 2:6567d77a8394 159 {
arelicayetano 2:6567d77a8394 160 Numeros[i]=Cadena[i+nchar];// Copia 4 caracteres al buffer de despliegue
arelicayetano 2:6567d77a8394 161 if (nchar >= Size_String) nchar=0; // Restablece el contador de caractres
arelicayetano 2:6567d77a8394 162 if (i==4) //
arelicayetano 2:6567d77a8394 163 {
arelicayetano 2:6567d77a8394 164 i=0; //
arelicayetano 2:6567d77a8394 165 mode=0; //
arelicayetano 2:6567d77a8394 166 }
arelicayetano 2:6567d77a8394 167 }
arelicayetano 2:6567d77a8394 168 //------------------ Barrido de los Digitos ------------------------
arelicayetano 2:6567d77a8394 169 Anodos=Digitos[4]; // Apaga todos los Digitos (Evita fantasmas)
arelicayetano 2:6567d77a8394 170 Catodos=Segmentos[Numeros[i]]; // Actualiza los segmentos
arelicayetano 2:6567d77a8394 171 if (i==4-punto_decimal) Catodos=(Segmentos[Numeros[i]]& 0xFE); // Enciende el punto decimal
arelicayetano 2:6567d77a8394 172 Anodos=Digitos[i]; // Activa el Digito en cuestión
arelicayetano 2:6567d77a8394 173 i++; // Apunta al siguiente dígito
arelicayetano 2:6567d77a8394 174 if (i==4) // Es el últino dígito?
arelicayetano 2:6567d77a8394 175 {
arelicayetano 2:6567d77a8394 176 i=0; // Reinicia el Barriodo
arelicayetano 2:6567d77a8394 177 }
arelicayetano 2:6567d77a8394 178 flag1=FALSE; // Apaga la Bandera 1
arelicayetano 2:6567d77a8394 179 }
arelicayetano 2:6567d77a8394 180
arelicayetano 2:6567d77a8394 181 //------------------ Corrimiento de los Digitos ------------------------
arelicayetano 2:6567d77a8394 182 if (flag2==TRUE) // Está puesta la Bandera 2?
arelicayetano 2:6567d77a8394 183 {
arelicayetano 2:6567d77a8394 184 shift_rate--; // Decrementa el contador de Corrimientos
arelicayetano 2:6567d77a8394 185 if (!shift_rate) // Es Cero?
arelicayetano 2:6567d77a8394 186 {
arelicayetano 2:6567d77a8394 187 mode=1; // Tiempo entre desplazamientos del mensaje
arelicayetano 2:6567d77a8394 188 shift_rate = Shift_Time;// Restablece el tiempo de los corrimientos
arelicayetano 2:6567d77a8394 189 nchar++; // corrimiento al siguiente conjunto de de caracteres
arelicayetano 2:6567d77a8394 190 i=0; // Restablece el barrido de los digitos
arelicayetano 2:6567d77a8394 191 }
arelicayetano 2:6567d77a8394 192 led_monitor=!led_monitor; // parapadeo del led_monitor
arelicayetano 2:6567d77a8394 193 flag2=FALSE; // Limpia la Bandera 2
arelicayetano 2:6567d77a8394 194 }
Antulius 0:9f7581d1af6f 195 }
Antulius 0:9f7581d1af6f 196 }
Antulius 0:9f7581d1af6f 197 /* END main */
Antulius 0:9f7581d1af6f 198
Antulius 0:9f7581d1af6f 199 /*
Antulius 0:9f7581d1af6f 200 ................................................................................
arelicayetano 2:6567d77a8394 201 : Rutinas de los Vectores de Interrupción
Antulius 0:9f7581d1af6f 202 ................................................................................
Antulius 0:9f7581d1af6f 203 */
arelicayetano 2:6567d77a8394 204 void Barrido_OnInterrupt() // Rutina de Atención al Ticker
Antulius 0:9f7581d1af6f 205 {
arelicayetano 2:6567d77a8394 206 cont_1ms++; // Incrmenta el contador de milisegundos
arelicayetano 2:6567d77a8394 207 counter--; // Decrementa el contador de eventos
arelicayetano 2:6567d77a8394 208 scan_rate--; // Decrementa el tiempo de despliege
arelicayetano 2:6567d77a8394 209 if(!scan_rate) // Se acabo el tiempo de desplige?
arelicayetano 2:6567d77a8394 210 {
arelicayetano 2:6567d77a8394 211 scan_rate=Scan_Time; // Se restable el tiempo de despliegue
arelicayetano 2:6567d77a8394 212 flag1=TRUE; // Enciende la bandera para las rutinas de despliege
arelicayetano 2:6567d77a8394 213 }
arelicayetano 2:6567d77a8394 214 if (cont_1ms>=10) // Son 10ms?
arelicayetano 2:6567d77a8394 215 {
arelicayetano 2:6567d77a8394 216 cont_10ms++; // Incrementa el contador de decimas de ms
arelicayetano 2:6567d77a8394 217 cont_1ms=0; // Restablece el contador de ms
arelicayetano 2:6567d77a8394 218 }
arelicayetano 2:6567d77a8394 219 if (cont_10ms>=10) // Son 100ms?
arelicayetano 2:6567d77a8394 220 {
arelicayetano 2:6567d77a8394 221 cont_100ms++; // Incrementa el contador de centecimas de ms
arelicayetano 2:6567d77a8394 222 cont_10ms=0; // Restablece el contador de decimas de seg
arelicayetano 2:6567d77a8394 223 }
arelicayetano 2:6567d77a8394 224 if (cont_100ms>=10) // Son 1000ms o sea 1 seg?
arelicayetano 2:6567d77a8394 225 {
arelicayetano 2:6567d77a8394 226 cont_1s++; // Incrementa el contador de segundos
arelicayetano 2:6567d77a8394 227 cont_100ms=0; // Restablece el contador de centesimas de seg
arelicayetano 2:6567d77a8394 228 }
arelicayetano 2:6567d77a8394 229 if (cont_1s>=10) // Son 10seg?
arelicayetano 2:6567d77a8394 230 {
arelicayetano 2:6567d77a8394 231 cont_1s=0; // Restablece el contador de segundos
arelicayetano 2:6567d77a8394 232 }
Antulius 0:9f7581d1af6f 233 if (!counter)
Antulius 0:9f7581d1af6f 234 {
arelicayetano 2:6567d77a8394 235 counter=Counter_Time; // Restablece el contador de eventos
arelicayetano 2:6567d77a8394 236 flag2=TRUE;
arelicayetano 2:6567d77a8394 237 }
arelicayetano 2:6567d77a8394 238 }
arelicayetano 2:6567d77a8394 239 /* END Events */
Antulius 0:9f7581d1af6f 240 /*
Antulius 0:9f7581d1af6f 241 ________________________________________________________________________________
Antulius 0:9f7581d1af6f 242 |
Antulius 0:9f7581d1af6f 243 | Funciones Prototipo
Antulius 0:9f7581d1af6f 244 |_______________________________________________________________________________
Antulius 0:9f7581d1af6f 245 */
arelicayetano 2:6567d77a8394 246 // Las Funciones Prototipo van aquí !
arelicayetano 2:6567d77a8394 247
Antulius 0:9f7581d1af6f 248
arelicayetano 2:6567d77a8394 249 /* END program */
arelicayetano 2:6567d77a8394 250 /*+------------------------------------------------------------------------------------
arelicayetano 2:6567d77a8394 251 *+ Descripción del Display de 7 Segmentos de Anodos Comunes en modo multiplexado
arelicayetano 2:6567d77a8394 252 *+-------------------------------------------------------------------------------------
arelicayetano 2:6567d77a8394 253 *+ 13 12 11 10 9 8
arelicayetano 2:6567d77a8394 254 *+ | | | | | |
arelicayetano 2:6567d77a8394 255 *+ | | | | | |
arelicayetano 2:6567d77a8394 256 *+ --------------------------------------------------
arelicayetano 2:6567d77a8394 257 *+ | A a f A A b |
arelicayetano 2:6567d77a8394 258 *+ | 4 3 2 |
arelicayetano 2:6567d77a8394 259 *+ | ______________________________________________ |
arelicayetano 2:6567d77a8394 260 *+ | | ____ ____ _____ _____ | |
arelicayetano 2:6567d77a8394 261 *+ | | / / / / / / / / | |
arelicayetano 2:6567d77a8394 262 *+ | | /____ / /____ / . /____ / /____ / | |
arelicayetano 2:6567d77a8394 263 *+ | | / / / / . / / / / | |
arelicayetano 2:6567d77a8394 264 *+ | | /____ /. /_____/ . /____ /. /____ /. | |
arelicayetano 2:6567d77a8394 265 *+ | | | |
arelicayetano 2:6567d77a8394 266 *+ | |______________________________________________| |
arelicayetano 2:6567d77a8394 267 *+ | |
arelicayetano 2:6567d77a8394 268 *+ | A |
arelicayetano 2:6567d77a8394 269 *+ | e d p c g 1 |
arelicayetano 2:6567d77a8394 270 *+ --------------------------------------------------
arelicayetano 2:6567d77a8394 271 *+ | | | | | | |
arelicayetano 2:6567d77a8394 272 *+ | | | | | | |
arelicayetano 2:6567d77a8394 273 *+ 1 2 3 4 5 6 7
arelicayetano 2:6567d77a8394 274 *+
arelicayetano 2:6567d77a8394 275 *+ Display: HS410561K-D30
arelicayetano 2:6567d77a8394 276 *+
arelicayetano 2:6567d77a8394 277 *+
arelicayetano 2:6567d77a8394 278 *+ 13 12 11 10 9 8
arelicayetano 2:6567d77a8394 279 *+ | | | | | |
arelicayetano 2:6567d77a8394 280 *+ | | | | | |
arelicayetano 2:6567d77a8394 281 *+ --------------------------------------------------
arelicayetano 2:6567d77a8394 282 *+ | A g f p a b |
arelicayetano 2:6567d77a8394 283 *+ | 4 |
arelicayetano 2:6567d77a8394 284 *+ | ______________________________________________ |
arelicayetano 2:6567d77a8394 285 *+ | | ____ ____ _____ _____ | |
arelicayetano 2:6567d77a8394 286 *+ | | / / / / / / / / | |
arelicayetano 2:6567d77a8394 287 *+ | | /____ / /____ / . /____ / /____ / | |
arelicayetano 2:6567d77a8394 288 *+ | | / / / / . / / / / | |
arelicayetano 2:6567d77a8394 289 *+ | | /____ /. /_____/ /____ /. /____ /. | |
arelicayetano 2:6567d77a8394 290 *+ | | | |
arelicayetano 2:6567d77a8394 291 *+ | |______________________________________________| |
arelicayetano 2:6567d77a8394 292 *+ | |
arelicayetano 2:6567d77a8394 293 *+ | A A A |
arelicayetano 2:6567d77a8394 294 *+ | e 3 2 c d 1 |
arelicayetano 2:6567d77a8394 295 *+ --------------------------------------------------
arelicayetano 2:6567d77a8394 296 *+ | | | | | | |
arelicayetano 2:6567d77a8394 297 *+ | | | | | | |
arelicayetano 2:6567d77a8394 298 *+ 1 2 3 4 5 6 7
arelicayetano 2:6567d77a8394 299 *+
arelicayetano 2:6567d77a8394 300 *+ Display: BQ-M544RE
arelicayetano 2:6567d77a8394 301 *+
arelicayetano 2:6567d77a8394 302 *+
arelicayetano 2:6567d77a8394 303 *+ 16 15 14 13 11
arelicayetano 2:6567d77a8394 304 *+ | | | | |
arelicayetano 2:6567d77a8394 305 *+ | | | | |
arelicayetano 2:6567d77a8394 306 *+ --------------------------------------------------
arelicayetano 2:6567d77a8394 307 *+ | b g a c f |
arelicayetano 2:6567d77a8394 308 *+ | |
arelicayetano 2:6567d77a8394 309 *+ | ______________________________________________ |
arelicayetano 2:6567d77a8394 310 *+ | | ____ ____ _____ . _____ | |
arelicayetano 2:6567d77a8394 311 *+ | | / / / / / / / / | |
arelicayetano 2:6567d77a8394 312 *+ | | /____ / /____ / . /____ / /____ / | |
arelicayetano 2:6567d77a8394 313 *+ | | / / / / . / / / / | |
arelicayetano 2:6567d77a8394 314 *+ | | /____ /. /_____/ . /____ /. /____ /. | |
arelicayetano 2:6567d77a8394 315 *+ | | | |
arelicayetano 2:6567d77a8394 316 *+ | |______________________________________________| |
arelicayetano 2:6567d77a8394 317 *+ | |
arelicayetano 2:6567d77a8394 318 *+ | A A A A A |
arelicayetano 2:6567d77a8394 319 *+ | 4 3 d p e 2 p 1 |
arelicayetano 2:6567d77a8394 320 *+ --------------------------------------------------
arelicayetano 2:6567d77a8394 321 *+ | | | | | | | |
arelicayetano 2:6567d77a8394 322 *+ | | | | | | | |
arelicayetano 2:6567d77a8394 323 *+ 1 2 3 4 5 6 7 8
arelicayetano 2:6567d77a8394 324 *+
arelicayetano 2:6567d77a8394 325 *+ Display: KEM-3942BSR
arelicayetano 2:6567d77a8394 326 *+
arelicayetano 2:6567d77a8394 327 +*
arelicayetano 2:6567d77a8394 328 *+
arelicayetano 2:6567d77a8394 329 *+ 12 11 10 9 8 7
arelicayetano 2:6567d77a8394 330 *+ | | | | | |
arelicayetano 2:6567d77a8394 331 *+ | | | | | |
arelicayetano 2:6567d77a8394 332 *+ --------------------------------------------------
arelicayetano 2:6567d77a8394 333 *+ | A a f A A b |
arelicayetano 2:6567d77a8394 334 *+ | 4 3 2 |
arelicayetano 2:6567d77a8394 335 *+ | ______________________________________________ |
arelicayetano 2:6567d77a8394 336 *+ | | ____ ____ _____ _____ | |
arelicayetano 2:6567d77a8394 337 *+ | | / / / / / / / / | |
arelicayetano 2:6567d77a8394 338 *+ | | /____ / /____ / . /____ / /____ / | |
arelicayetano 2:6567d77a8394 339 *+ | | / / / / . / / / / | |
arelicayetano 2:6567d77a8394 340 *+ | | /____ /. /_____/ . /____ /. /____ /. | |
arelicayetano 2:6567d77a8394 341 *+ | | | |
arelicayetano 2:6567d77a8394 342 *+ | |______________________________________________| |
arelicayetano 2:6567d77a8394 343 *+ | |
arelicayetano 2:6567d77a8394 344 *+ | A |
arelicayetano 2:6567d77a8394 345 *+ | e d p c g 1 |
arelicayetano 2:6567d77a8394 346 *+ --------------------------------------------------
arelicayetano 2:6567d77a8394 347 *+ | | | | | |
arelicayetano 2:6567d77a8394 348 *+ | | | | | |
arelicayetano 2:6567d77a8394 349 *+ 1 2 3 4 5 6
arelicayetano 2:6567d77a8394 350 *+
arelicayetano 2:6567d77a8394 351 *+ Display: FYQ-2841BH
arelicayetano 2:6567d77a8394 352 *+
arelicayetano 2:6567d77a8394 353 *+
arelicayetano 2:6567d77a8394 354 *+ PB_15 PB_14 PB_13 PB_12
arelicayetano 2:6567d77a8394 355 *+ A4 A3 A2 A1
arelicayetano 2:6567d77a8394 356 *+ Mill Cent Dec Uni
Antulius 0:9f7581d1af6f 357 *+
arelicayetano 2:6567d77a8394 358 *+ STM32-F103C8 PB_4 PB_3 PA_15 PA_12 PA_11 PA_10 PA_9 PA_8 # Hex Offset
arelicayetano 2:6567d77a8394 359 *+ a
arelicayetano 2:6567d77a8394 360 *+ ______ g f a b c d e p
arelicayetano 2:6567d77a8394 361 *+ / / 1 0 0 0 1 0 0 0 0 0x81 0
arelicayetano 2:6567d77a8394 362 *+ f / g / b 1 1 0 1 1 1 1 0 1 0xE7 1
arelicayetano 2:6567d77a8394 363 *+ /_____/ 1 0 1 1 0 1 0 0 2 0x49 2
arelicayetano 2:6567d77a8394 364 *+ / / 1 0 0 1 0 1 0 0 3 0x43 3
arelicayetano 2:6567d77a8394 365 *+ e / / c 1 1 0 1 0 0 1 0 4 0x27 4
arelicayetano 2:6567d77a8394 366 *+ /_____/ . 1 0 0 1 0 0 0 1 5 0x13 5
arelicayetano 2:6567d77a8394 367 *+ d p 1 0 0 0 0 0 0 1 6 0x11 6
arelicayetano 2:6567d77a8394 368 *+ 1 1 0 1 1 1 0 0 7 0xC7 7
arelicayetano 2:6567d77a8394 369 *+ 1 0 0 0 0 0 0 0 8 0x01 8
arelicayetano 2:6567d77a8394 370 *+ 1 0 0 1 0 0 0 0 9 0x03 9
arelicayetano 2:6567d77a8394 371 *+ 1 1 0 0 0 0 0 0 A 0x05 10
arelicayetano 2:6567d77a8394 372 *+ 1 0 0 0 0 0 1 1 b 0x31 11
arelicayetano 2:6567d77a8394 373 *+ 1 0 1 0 1 0 0 1 C 0x99 12
arelicayetano 2:6567d77a8394 374 *+ 1 0 0 0 0 1 1 0 d 0x61 13
arelicayetano 2:6567d77a8394 375 *+ 1 0 1 0 0 0 0 1 E 0x19 14
arelicayetano 2:6567d77a8394 376 *+ 1 1 1 0 0 0 0 1 f 0x1D 15
arelicayetano 2:6567d77a8394 377 *+ 1 0 0 0 1 0 0 1 G 0x91 16
arelicayetano 2:6567d77a8394 378 *+ 1 1 0 0 0 0 1 1 h 0x35 17
arelicayetano 2:6567d77a8394 379 *+ 1 1 0 1 1 1 1 1 i 0xBD 18
arelicayetano 2:6567d77a8394 380 *+ 1 0 0 0 1 1 1 0 J 0xB3 19
arelicayetano 2:6567d77a8394 381 *+ 1 0 1 0 0 0 1 0 k 0x2D 20
arelicayetano 2:6567d77a8394 382 *+ 1 0 1 0 1 0 1 1 L 0xB9 21
arelicayetano 2:6567d77a8394 383 *+ 1 1 0 0 1 0 0 0 M 0x85 22
arelicayetano 2:6567d77a8394 384 *+ 1 1 0 0 0 1 1 1 n 0x75 23
arelicayetano 2:6567d77a8394 385 *+ 1 0 0 0 0 1 1 1 o 0x71 24
arelicayetano 2:6567d77a8394 386 *+ 1 1 1 0 0 0 0 0 P 0x0D 25
arelicayetano 2:6567d77a8394 387 *+ 1 1 0 1 0 0 0 0 q 0x07 26
arelicayetano 2:6567d77a8394 388 *+ 1 1 1 0 0 1 1 1 r 0x3D 27
arelicayetano 2:6567d77a8394 389 *+ 1 0 0 1 0 0 0 1 s 0x13 28
arelicayetano 2:6567d77a8394 390 *+ 1 0 1 0 0 0 1 1 t 0x39 29
arelicayetano 2:6567d77a8394 391 *+ 1 0 0 0 1 1 1 1 u 0xF1 30
arelicayetano 2:6567d77a8394 392 *+ 1 0 0 0 1 0 1 1 V 0xE1 31
arelicayetano 2:6567d77a8394 393 *+ 1 0 0 0 1 0 1 0 w 0xA1 32
arelicayetano 2:6567d77a8394 394 *+ 1 1 0 0 1 0 1 0 X 0x25 33
arelicayetano 2:6567d77a8394 395 *+ 1 0 0 1 0 0 1 0 y 0x37 34
arelicayetano 2:6567d77a8394 396 *+ 1 0 1 0 1 1 0 0 Z 0x49 35
arelicayetano 2:6567d77a8394 397 *+ 1 0 0 0 0 1 0 0 a 0x84 36
arelicayetano 2:6567d77a8394 398 *+ 1 0 1 0 0 0 0 0 e 0xA0 37
arelicayetano 2:6567d77a8394 399 *+ 1 1 1 1 0 0 0 1 + c 0xF1 38
arelicayetano 2:6567d77a8394 400 *+ 1 1 1 1 0 1 0 0 +/c 0xF4 39
arelicayetano 2:6567d77a8394 401 *+ 1 0 1 0 0 1 1 1 c 0xA7 40
arelicayetano 2:6567d77a8394 402 *+ 1 0 0 1 0 1 1 1 /c 0x97 41
arelicayetano 2:6567d77a8394 403 *+ 1 1 1 1 0 0 1 0 + u 0xF2 42
arelicayetano 2:6567d77a8394 404 *+ 1 1 1 1 1 0 0 0 + n 0xF8 43
arelicayetano 2:6567d77a8394 405 *+ 1 0 1 0 1 0 0 1 [ 0xA9 44
arelicayetano 2:6567d77a8394 406 *+ 1 0 0 1 1 1 0 0 ] 0x9C 45
arelicayetano 2:6567d77a8394 407 *+ 1 1 1 1 0 0 0 0 ° 0xF0 46
arelicayetano 2:6567d77a8394 408 *+ 1 1 1 1 1 1 0 0 ¬ 0xFC 47
arelicayetano 2:6567d77a8394 409 *+ 1 1 1 1 0 1 1 0 + > 0xF6 48
arelicayetano 2:6567d77a8394 410 *+ 1 1 1 0 0 1 1 1 ^ 0xE7 49
arelicayetano 2:6567d77a8394 411 *+ 1 0 1 0 1 1 1 1 / < 0xAF 50
arelicayetano 2:6567d77a8394 412 *+ 1 0 0 1 1 1 1 1 / v 0x9F 51
arelicayetano 2:6567d77a8394 413 *+ 1 1 0 1 0 1 1 1 > 0xD7 52
arelicayetano 2:6567d77a8394 414 *+ 1 1 1 1 0 0 1 1 v 0xF3 53
arelicayetano 2:6567d77a8394 415 *+ 1 1 1 1 1 0 0 1 < 0xF9 54
arelicayetano 2:6567d77a8394 416 *+ 1 1 1 1 1 1 0 1 / _ 0xBF 55
arelicayetano 2:6567d77a8394 417 *+ 1 1 1 1 0 1 1 1 - 0xF7 56
arelicayetano 2:6567d77a8394 418 *+ 1 0 1 1 1 1 1 1 _ 0xFD 57
arelicayetano 2:6567d77a8394 419 *+ 1 1 1 1 0 1 0 1 = 0xF5 58
arelicayetano 2:6567d77a8394 420 *+ 1 0 1 1 0 1 1 1 / = 0xB7 59
arelicayetano 2:6567d77a8394 421 *+ 1 0 1 1 0 1 0 1 == 0xB5 60
arelicayetano 2:6567d77a8394 422 *+ 1 0 1 1 1 1 0 1 _¬ 0xBD 61
arelicayetano 2:6567d77a8394 423 *+ 1 1 0 0 1 1 1 1 ii 0xCF 62
arelicayetano 2:6567d77a8394 424 *+ 1 1 1 1 1 0 1 0 # 0xFA 63
arelicayetano 2:6567d77a8394 425 *+ 1 0 0 1 1 1 1 0 j 0x9E 64
arelicayetano 2:6567d77a8394 426 *+ 1 1 0 1 1 1 0 0 /j 0xDC 65
arelicayetano 2:6567d77a8394 427 *+ 1 1 1 0 1 0 0 1 - j 0xE9 66
arelicayetano 2:6567d77a8394 428 *+ 1 0 1 0 1 0 1 1 -/j 0xAB 67
arelicayetano 2:6567d77a8394 429 *+ 1 0 0 0 1 1 1 0 - J 0x8E 68
arelicayetano 2:6567d77a8394 430 *+ 1 1 0 1 1 0 0 0 -/J 0xD8 69
arelicayetano 2:6567d77a8394 431 *+ 1 1 1 0 1 0 1 1 | 0xEB 70
arelicayetano 2:6567d77a8394 432 *+ 1 1 0 0 1 0 1 0 || 0xCA 71
arelicayetano 2:6567d77a8394 433 *+ 1 1 0 1 0 1 1 0 + 0xD6 72
arelicayetano 2:6567d77a8394 434 *+ 1 1 1 0 0 0 1 1 /+ 0xE3 73
arelicayetano 2:6567d77a8394 435 *+ 1 0 0 1 1 0 1 1 espacio 0xFF 74
Antulius 0:9f7581d1af6f 436 *+
arelicayetano 2:6567d77a8394 437 *+ Nota: Cada dígito se activa al hacer la señal A correspondiente en "alto"
arelicayetano 2:6567d77a8394 438 *+ y enviar las señales de los segmentos que se desean encender en "bajo"
Antulius 0:9f7581d1af6f 439 *+
arelicayetano 2:6567d77a8394 440 *+---------------------------------------------------------------------------------------- */
arelicayetano 2:6567d77a8394 441 /* END documentation */